- 匹配一段特定子网的一组主机,需要使用-S指定:
- salt -S 192.168.0.0.24 test.ping
- Glob(通配,默认类型)
- salt '*' test.ping
- salt * test.ping
- 通过API或者其他用户接口使用Salt时,通配符(*)通常不需要引号和逃逸字符()保护。
- Perl语言兼容性正则表达式(PCRE)
- -E , --pcre : salt -E '^[mM]in.[eou]n$' test.ping
- list
- -L,--list: 通过逗号分隔的列表来指定多个Minion。列表中的项不使用glob或正则表达式匹配,必须是显式声明的
- salt -L web1,web2,db1,proxy1 test.ping
- subnet
- -S, --ipcidr :通过指定一个IPV4或者一个CIDR的IPV4子网来target Minion
- salt -S 192.168.0.42 test.ping
- salt -S 192.168.0.0/16 test.ping
- 截至2015.5版本,salt还不能通过IPV6来访问。
- grain
- -G,--grain:Salt可以通过如OS,CPU架构以及自定义的信息等机器特性来进行target Minion。由于Grain是键值对(key/value pair),所以键名及值都必须指定,通过:分隔
- salt -G 'os:Ubuntu' test.ping
- salt -G 'os_family:Debian' test.ping
- 一些Grain是多级字典,可以通过冒号进行分隔字典中的每一级键名:
- salt -G 'ip_interfaces:eth0:192.168.11.36' test.ping
- 如果Grain含有冒号,同样需要指定,比如IPV6:salt -G 'ipv6::::1'
- Grain PCRE
- --grain-gcre: 通过Grain来匹配很高效,但如果想进行更复杂的grain匹配,可以使用grain pcre进行匹配:
- salt --grain-pcre 'os:red(hat|flag)' test.ping
- Pillar
- -I, --pillar: Salt支持通过pillar数据进行匹配
- salt -I 'my_var:my_val' test.ping
- 混合(Compound)
- -C,--compound: 混合target允许用户在一个shell命令中指定多种target类型。默认使用glob,想指定其他target,则需要在前面追加类型简写和@符号。
- 如想匹配系统是Ubuntu,Pillar中的Role是web,且属于192.168.100.0/24子网的Minion:
- salt -C 'G@os:Ubuntu,I@role:web,S@192.168.100.0/24' test.ping
- 布尔符号中的and,or,not也可以在target类型中使用
- salt -C 'min* or *ion' test.ping
- salt -C 'web* or *qa,G@os:Arch' test.ping
-
简写 target G Grain E PCRE Minion ID P Grain PCRE L 列表 List I Pillar S Subnet/IP Address R SECO 范围
- dd