saltstack远程执行之目标选择

G远程执行目标选择分为两类

1.和Minion  ID有关,需要使用Minion ID:

  1)Globbing(通配符)

  2)regex(正则表达式)

  3)List(列表)

2.和MinionID无关不涉及到Minion ID:

  1)子网/IP地址

  2)Grains

  3)Pillar

  4)Compound matchers(复合匹配)

  5)Node groups(节点组)

  6)Batching execution(批处理执行)

第一种就涉及到minion的设置

  一般minion设置和业务关联起来.

  或者用ip地址设置.参考如下:

  

1.第一种的各种情况

  1)通配符   典型的就是*,   ""linux-node?"",linux[1-2].总之复合shell统配符

  2)列表的使用方法     salt -L "linux-node1.example.com,linux-node2.example"    各列表元素之间用"",""逗号来区割.

  3)正则表达式的方法    salt -E "linux-(node1|node2)*"  test.ping     通过-E来是指正则.

  上面说的方法都是可以再top.sls文件里使用的.

  在top.sls里面使用正则的方式如下:

    base: 

      "linux-(node1|node2)*":

        - match: pcre

        - web.apache

2.和Minion id无关的各种情况.

  1)使用ip相关的   示例: salt -S "192.168.56.11"  test.ping   指定ip用  -S  也可以指定子网掩码.示例: salt -S "192.168.56.0/24"  test.ping 

  2)使用Grains  示例   salt -G "os:Gentos"  test.ping

  3)在使用grains的情况也可以是使用正则   -P   相当于  -- grain-pcre   示例:   salt -P "os_family:Red(Hat|Flag)" test.ping

  4)混合匹配,这个就比较复杂,如下:   混合匹配是 -  C 

  

  混合匹配示例:

  salt -C  "S@192.168.56.11 or L@linux-node2.example.com" test.ping

  或者:

  salt -C  "S@192.168.56.11/24 not  L@linux-node1.example.com" test.ping

  

  5)节点组

        首先要改/etc/salt/master的配置文件,如下图

    

    配置好后需要重启 salt-master.然后使用如下示例:

  salt -N web-group cmd.run "uptime"

  节点组在top.sls里面是如何使用的呢,使用示例如下:

  

  

     6)批处理

  使用示例:

  salt "*"  -b 1 test.ping   -b是指定同时有多少台机器来执行.比如这里指定为1,那么就是一台一台执行.

  也可以再执行其他方法时加上批处理.示例如下:

  salt -G "os:Centos"  --batch-size 5% test.ping 

原文地址:https://www.cnblogs.com/ahliucong/p/10519867.html