muugua 发表于 2018-8-1 06:54:06

Saltstack系列(二) Saltstack分组

  今天2015年10月26号是我学习saltstack的第22天,在工作中用到的第二次自己总结出来的经验10月4号写下了篇自己第一次用的saltstack的文档,继续更新:感谢大家在第一篇给予的意见,多多指导互相学习。
  为了便于管理功能业务相似的minion,Saltstack提供了分组的模式,因为线上机器多,不可能每次都是“*”或者“ip主机名” 这样不现实的。 所以我们现在都是提供分组,哪里的机器分哪个组这样你操作起来就方便而且容易排查。
  官方文档:http://docs.saltstack.com/topics/targeting/nodegroups.html
  Node group为预先在master配置文件中定义的minion组.用来进行批量对minion进行操作.
  编辑配置文件 vi /etc/salt/master
  ##### Node Groups #####
  ##########################################
  # Node groups allow for logical groupings of minion nodes.
  # A group consists of a group name and a compound target.
  #
  #nodegroups:
  # group1: ‘L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com’
  # group2: ‘G@os:Debian and foo.domain.com’

nodegroups:  testgroup1: 'L@test82.salt.cn,test83.salt.cn'
  testgroup2: '192.168.2.84'
  这里我设置自己需要的组。
  之后重启master
  测试:
# salt -N testgroup1 test.ping  test83.salt.cn:
  Truetest82.salt.cn:
  True
  这里salt -N#-N 是分组的命令符 后面接分组下发命令。
# salt -N testgroup2 test.ping192.168.2.84:  True
  显示 true
  高级用法:
  关于组的混合匹配:(Compound matchers)

  匹配中可以使用and、or及not等boolean型操作

  例如,想匹配所有minion中主机名(minion>  salt -C ‘webserv* and G@os:Debian or E@web-dc1-srv.*’ test.ping
  在top.sls中可以如下使用:
  base:
  ‘webserv* and G@os:Debian or E@web-dc1-srv.*’:
  – match: compound
  – webserver
  这里在提一点,是很多论坛上面我都没有看到的,我工作中用到了,非常方便。因为分组也有地区分开,还有就是每次添加分组,编辑/etc/salt/master 非常麻烦。
  我们这里设置了,单独目录下面设置group.conf 里面放分组。 #/etc/salt/include/group.conf
  这样就直接每次按要求格式写。
  特别提示下,这里分组,后面接的是用户的hostname,第一个要空格。
页: [1]
查看完整版本: Saltstack系列(二) Saltstack分组