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

[经验分享] saltstack数据系统之Grains,pillar

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-8-22 08:53:41 | 显示全部楼层 |阅读模式
Grains
grains 负责采集客户端(minion端)一些基本信息 ,这个也完全可以自定义,可以在客户端自定义,然后自动汇报上来,也可以从服务器端定义然后推下去,采集完后再汇报上来(重启才收集),也可以使用saltutil.sync_grains进行刷新


1.grains之收集信息
[iyunv@node1 salt]# salt 'node1*' grains.ls
[iyunv@node1 salt]# salt 'node1' grains.items查看收集的所有信息
[iyunv@node1 salt]# salt 'node1' grains.get fqdn显示单个
node1:
    node1
[iyunv@node1 salt]# salt 'node1' grains.item fqdn显示单个
node1:
    ----------
    fqdn:
        node1

[iyunv@node1 salt]# salt 'node1*' grains.get ip_interfaces:eth2
node1:
    - 192.168.10.129
    - fe80::20c:29ff:feca:35bf


2.grains之在指定服务器执行命令(-G匹配grains信息)
[iyunv@node1 salt]# salt 'node*' grains.get os
node2:
    CentOS
node1:
    CentOS
[iyunv@node1 salt]# salt -G os:CentOS cmd.run 'w'  #与grains里存储的os信息匹配,匹配到的机器执行 w
node2:
     14:46:45 up 15:04,  2 users,  load average: 0.00, 0.00, 0.00
    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    root     tty1     -                12:27    2:19m  0.06s  0.06s -bash
    root     pts/0    192.168.10.1     12:38   28:32   0.40s  0.29s bash
node1:
     06:48:31 up 15:04,  2 users,  load average: 0.08, 0.04, 0.04
    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    root     tty1     -                Wed15    2:19m  0.33s  0.01s bash
root     pts/0    192.168.10.1     04:40    1.00s  1.06s  0.39s /usr/bin/python

3.自定义信息
minion端自定义1:
[iyunv@node2 ~]# vim /etc/salt/minion ###在node2自定义角色-webserver,memcache
grains:
  roles:
    - webserver
    - memcache
[iyunv@node2 ~]# /etc/init.d/salt-minion restart
测试:

[iyunv@node1 salt]# salt -G 'roles:memcache' cmd.run 'echo hehe'   
node2:
hehe
注:在master端收集与grains里自定义的角色匹配的机器执行echo命令

minion端自定义2:
[iyunv@node2 ~]# cat /etc/salt/grains   ###也可以在/etc/salt/grains自定义  
web: nginx
[iyunv@node2 ~]# /etc/init.d/salt-minion restart
测试
[iyunv@node1 salt]# salt -G web:nginx cmd.run 'w'
node2:
     14:59:37 up 15:17,  2 users,  load average: 0.00, 0.00, 0.00
    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    root     tty1     -                12:27    2:32m  0.06s  0.06s -bash
    root     pts/0    192.168.10.1     12:38    7.00s  0.47s  0.36s bash
将minion端自定义的grains信息与top.sls联系:
[iyunv@node1 salt]# cat /srv/salt/apache.sls
apache-install:
  pkg.installed:
    - names:
      - httpd
      - httpd-devel

apache-service:
  service.running:
    - name: httpd
    - enable: True
    - reload: True
[iyunv@node1 salt]# cat /srv/salt/top.sls
base:
  'web:nginx' :
    - match: grain
- apache
[iyunv@node1 salt]# salt '*' state.highstate
注:匹配web:nginx,使用grains匹配,匹配成功的执行apache.sls这个状态





Pillar
数据存储在master端,在master端定义,指定给对应的minion,可以使用saltutil.refresh_pillar刷新,常用于存储master指定的数据,只有指定的minion可以看到。用于敏感数据保存

1.系统默认pillar
[iyunv@node1 ~]# vim /etc/salt/master
pillar_opts: Ture        #这里只是查看一下,查看之后将其关闭
[iyunv@node1 ~]# /etc/init.d/salt-master restart
[iyunv@node1 ~]# salt '*' pillar.items    #查看系统默认的pillar,key value的形式
[iyunv@node1 ~]# salt '*' pillar.items
node1:
    ----------
    master:
        ----------
        __role:
            master
        auth_mode:
            1
        auto_accept:
            False
        cache_sreqs:
            True
        cachedir:
            /var/cache/salt/master
        cli_summary:
            False
.......................................

2.自定义pillar
#编辑配置文件
[iyunv@node1 ~]# vim /etc/salt/master
pillar_roots:
  base:
    - /srv/pillar
[iyunv@node1 ~]# mkdir /srv/pillar
#写一个apache的状态
[iyunv@node1 ~]# cat /srv/pillar/apache.sls
{% if grains['os'] == 'CentOS' %}
apache: httpd
{% elif grains['os'] == 'Debian' %}
apache: apache2
{% endif %}
注:使用grains收集信息,如果系统是centos,那么apache的名字就叫httpd。系统是Debian的时候,apache叫apache2


#写一个tops.sls
[iyunv@node1 ~]# cat /srv/pillar/top.sls     #将定义的apache状态指定给所有minion
base:
  '*':
    - apache

[iyunv@node1 ~]# salt '*' saltutil.refresh_pillar刷新一下
node2:
    True
node1:
True

[iyunv@node1 ~]# salt '*' pillar.items
node1:
    ----------
    apache:
        httpd
node2:
    ----------
    apache:
        httpd

[iyunv@node1 ~]# salt -I 'apache:httpd' test.ping
node1:
    True
node2:
    True



运维网声明 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-403291-1-1.html 上篇帖子: saltstack搭建集群3 下篇帖子: salt 执行结果返回mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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