自动化运维工具SaltStack --- 分组(使用记录,groups)

在使用 SaltStack 对主机进行批量管理的时候,因为不同的服务器组所做的业务功能不同,因此为了更加方便的管理,势必要对主机进行分组管理。

因此就自己在分组使用的过程中有以下一点记录下。

参考 SaltStack 的官方文档 4.4 Compound matchers 和 4.3. Node groups 知道,对目标服务器分组有以下七种方式,这七种方式的标示符分别为:

  1. G -- 针对 Grains 做单个匹配,例如:G@os:Ubuntu
  2. E -- 针对 minion 针对正则表达式做匹配,例如:E@web\d+.(dev|qa|prod).loc
  3. P -- 针对 Grains 做正则表达式匹配,例如:P@os:(RedHat|Fedora|CentOS)
  4. L -- 针对 minion 做列表匹配,例如:L@minion1.example.com,minion3.domain.com or bl*.domain.com
  5. I -- 针对 Pillar 做单个匹配,例如:I@pdata:foobar
  6. S -- 针对子网或是 IP 做匹配,例如:S@192.168.1.0/24 or S@192.168.1.100
  7. R -- 针对客户端范围做匹配,例如: R@%foo.bar

然后我自己在做分组的时候,尝试了下 L 是否可以使用正则表达式

尝试一:

   nodegroups:
    #  group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'
    #  group2: 'G@os:Debian and foo.domain.com'
       TEST1: 'L@JF1-TEST1-001,JF1-TEST1-002,JF-TEST1-0[0-9][0-9]'

执行命令 sudo salt -N TEST1 test.ping结果为:

JF1-TEST1-002:
    True
JF1-TEST1-001:
    True

只会出现两台服务器,后面的不能匹配。

尝试二:

nodegroups:
    #  group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'
    #  group2: 'G@os:Debian and foo.domain.com'
       TEST1: 'L@JF1-TEST1-001,JF1-TEST1-002 or JF-TEST1-0[0-9][0-9]'

执行命令 sudo salt -N TEST1 test.ping结果为:

JF1-TEST1-002:
    True
JF1-TEST1-001:
    True
JF1-TEST1-003:
    True
JF1-TEST1-004:
    True
JF1-TEST1-006:
    True
JF1-TEST1-005:
    True

结果是所有的都匹配成功了

尝试三

nodegroups:
    #  group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'
    #  group2: 'G@os:Debian and foo.domain.com'
       TEST1: 'L@JF-TEST1-0[0-9][0-9]'

执行结果为:

No minions matched the target. No command was sent, no jid was assigned.

表示没有匹配到任何一个

结论

使用 L 列表的方式,必须把 minion 列出来,或者是列出几台后,在后面接 or 或者 and 表达式, or 或者 and 后面接的表达式后面可以使用正则表达式。

注:想使用正则表达式,最好的方式就是使用 E

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值