什么是grains工具?
Salt附带一接口,用于获取有关底层系统的信息。Salt的grains主要存储静态数据,用来收集minion端的一些数据,比如:操作系统,域名IP地址,内核,操作系统类型,内存或者其他系统属性。
Minion端在启动时会读取grains数据,如果有新的grains数据需要重启minion服务或者在master端使用salt命令进行刷新
一.grains工具的使用
方法1:
之前用saltstack自动化部署apache服务(server2)和nginx服务(server3)。
内容详见博客地址:
https://blog.csdn.net/chaos_oper/article/details/
1.server2的roles为apache
[root@server2 ~]# cd /etc/salt/ [root@server2 salt]# vim minion 120 grains: 121 roles: 122 - apache [root@server2 salt]# systemctl restart salt-minion
2.server3的roles为nginx
[root@server3 salt]# vim minion 120 grains: 121 roles: 122 - nginx [root@server3 salt]# systemctl restart salt-minion
3.在master端查看minion的角色
[root@server1 salt]# salt '*' grains.item roles
方法2:
1.在master端/srv/salt目录下创建_grains目录
[root@server1 salt]# mkdir _grains
2.在_grains目录下创建python模块脚本
[root@server1 salt]# cd _grains/ [root@server1 _grains]# vim my_grains.py #!/usr/bin/env python def my_grains(): grains= { 'foo':'bar','hello':'world'} grains['salt'] = 'stack' return grains
3.刷新
[root@server1 _grains]# salt '*' saltutil.sync_grains
4.在minion端查看推送
[root@server2 salt]# cd /var/cache/salt/minion/files/base/ [root@server2 base]# ls apache _grains top.sls [root@server2 base]# cd _grains/ [root@server2 _grains]# ls my_grains.py [root@server2 _grains]# cat my_grains.py #!/usr/bin/env python def my_grains(): grains= { 'foo':'bar','hello':'world'} grains['salt'] = 'stack' return grains
5.测试
[root@server1 _grains]# salt '*' grains.item hello
[root@server1 _grains]# salt '*' grains.item salt
[root@server1 _grains]# salt -G 'roles:apache' test.ping [root@server1 _grains]# salt -G 'roles:nginx' test.ping [root@server1 _grains]# salt -G 'salt:stack' test.ping
6.修改top.sls
[root@server1 salt]# vim top.sls base: 'roles:apache': - match: grain - apache.service 'roles:nginx': - match: grain - nginx.service
二.在Pillar中存储静态数据
- Pillar是Salt用来分发全局变量到所有minions的一个接口。Pillar data的管理类似于Salt State Tree。
- 存储敏感数据。不像是state tree, pillar只对匹配类型的minion有效。 这使它为特定的minion存储敏感数据非常有用.
1.声明master pillar
Salt Master服务器维护了一个pillar_roots 设置 ,和在Salt文件服务器上使用的file_roots结构对应。和Salt 文件服务器类似,master配置文件中的 pillar_roots选项也是基于环境映射到目录。Pillar数据被映射到基于top文件匹配到的Minion上,top 文件是和state top文件一样的方式列出的。Salt pillar可以使用和标准的top 文件同样的匹配器类型。
在master端主配置文件将pillar工具打开:
vim /etc/salt/master pillar_roots: base: - /srv/pillar
{% if grains['fqdn'] == 'server2' %} webserver: httpd state: master {% elif grains['fqdn'] == 'server3' %} webserver: nginx state: backup {% endif %}
4.在piller目录下,创建top.sls文件
base: '*': - web.vars
5.刷新:salt ‘*’ saltutil.refresh_pillar
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233151.html原文链接:https://javaforall.net