salt命令语法

salt  '<操作目标>'  <模块方法>  [参数]

 

具体有哪些<模块方法>参考:

https://docs.saltstack.com/en/develop/ref/modules/all/index.html#all-salt-modules

 

<操作目标>Saltstack提供了多种方法对被控主机(id)进行过滤。下面列举出常用具体参数:

[root@node1 ~]# salt '*' test.ping# *匹配所有目标

 

-E--pcre,通过正则表达式进行匹配:

[root@node1 ~]# salt -E '^node.*' test.ping #探测node开头的主机id名是否连通

 

 

-L--list,以主机id名列表的形式进行过滤,格式与Python的列表相似,即不同主机id名称使用逗号分离。

[root@node1 ~]# salt -L 'node1,node2' grains.item osfullname #获取主机id为:node1,node2完整操作系统发行版名称

 

 

-G--grain,根据被控主机的grains信息进行匹配过滤,格式为:<grain value>:<grain expression>

[root@node1 ~]# salt '*' grains.items#获取grains收集的信息

[root@node1 ~]# salt -G 'osrelease:6.6' cmd.run 'uptime' #获取发行版本为6.6uptime

 

 

-I,--pillar,根据被控主机的pillar信息进行匹配过滤,格式为:"对象名称":"对象值"

salt -I 'nginx:root:/data' test.ping #探测具有'nginx:root:/data'信息的连通性。

#pillar属性配置文件如下:

nginx:

  root: /data

 

-N,--nodegroup,根据主控端master配置文件中的分组名称进行过滤。

#分组配置:【/etc/salt/master

nodegroups:

web1group: 'L@node1'

web2group: 'L@node2'

#其中L@表示后面的主机id格式为列表,即主机id以逗号分隔:G@表示以grain格式描述:S@表示以IP子网或地址格式描述

salt -N web2group test.ping #探测web2group被控主机的连通性

 

-C,--compound,根据条件运算符notandor去匹配不同规则的主机信息

salt -C 'E@^node.* and G@os:Centos' test.ping #探测node开头并且操作系统版本为CentOS的主机的连通性

 

 

-S,--ipcidr,根据被控主机的IP地址或IP子网进行匹配

salt -S 192.168.10.0/24 test.ping

salt -S 192.168.10.128 test.ping