【技术学习】saltstack 笔记(一) --匹配Minion

  • 匹配一段特定子网的一组主机,需要使用-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
原文地址:https://www.cnblogs.com/tben/p/11834250.html