设为首页 收藏本站
查看: 1395|回复: 0

[经验分享] Saltstack 学习之target minions(二)

[复制链接]

尚未签到

发表于 2018-8-1 10:14:50 | 显示全部楼层 |阅读模式
  本文紧接上一篇,就target的各分类方式的详细用法予以讲解。
> Grains
  首先一点,需要注意的是,minion的grains信息在minion启动时便会生成和加载,之后便以静态数据的形式存在。
  Grains的匹配在前文已经有所提及,实现原理便是读取grains的dict数据,而后与tgt字串进行匹配,当然,它支持嵌套key-value形式,如:
salt -G 'ec2_tags:environment:*production*' test.ping -v  上述命令即寻找grains的ec2_tags grain数据对应的environment key,且value包含production的所有minion。
  系统默认收集grains数据的源码可以参见salt grains core.py
  由于salt默认提供的静态grains数据覆盖面不够,为此我们可以做一些自定义grains的工作,从而达成业务上的需求。

  •   /etc/salt/grains或/etc/salt/minion.d/xx.conf (在minion端建立grains)
roles:  
  - webserver
  
  - memcache
  
deployment: datacenter4
  
cabinet: 13
  
cab_u: 14-15

  •   /srv/salt/_grains/ (在master端分发到各minion)
# collect.py  
#!py
  
#返回的应该是一个dict,key-value形式
  
#之后通过salt '*' saltutil.sync_grains分发
  

  
def run():
  
    return {"test_data": "yeah"}
  

  
run()
  这里注意一下,上面所述的两种grains自定义其实是有各自的应用场景,前者可以是特定的少数minion配置独立的grains数据,以方便target而建立的,比如临时的打上一个集群的标签,以便快速定位和部署,其部署位置在于 minion端 。而下面的_grains下放置的py脚本则是完全的自定义grains,为的是统一的添加额外的grains数据,比如一些业务区分信息等,于 master端 部署,尔后分发到各个minion。
> 分组
  前文提到可以定义Node Group,将minion有机的区分组别,比如电信机房的归为一个组,联通机房归为另外一个组(怎么实现? 可以考虑用自定义grains!)
  官方文档中介绍的Node group使用方法实在有点坑,必须要写入到master的配置文件才可以生效(还需要重启salt-master!!)。不过,在看了绿肥大神的博客后豁然开朗,“有大牛就是好啊! ”。
  实际上,可以通过在/etc/salt/master.d/nodegroups.conf文件(没有就新建)写入相关内容,相应的,默认salt-master可以识别出对应定义的组别信息!
下面是一个简单的 nodegroups.conf 样例:
nodegroups:  
    test1: 'E@TestVM.*'
  
    test2: 'L@salt01,salt02'
  
    test: 'N@test1 or N@test2’
  尝试一下 salt -N test test.ping -v 吧! 你会得到想要的答案!
  对于分组,个人认为,应该在充分定义好各minion相应信息(最重要的应该是grains数据)之后,再写入到nodegroups.conf文件里。分组大可不拘泥于数量和差异,以业务、服务器类别、OS等多维度划分,这样将会极大便利于后面的部署和维护!
  参考:
  salt官网、绿肥神的blog
  我的博客:http://devopstarter.info/saltstack-xue-xi-zhi-target-minionser/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-544601-1-1.html 上篇帖子: Saltstack 学习之target minions(一) 下篇帖子: saltstack学习记录
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表