一、实验环境
1、环境介绍
注意:此篇博客接着上篇博客环境编写!!!
主机名 | IP | 操作系统 | 安装软件 |
---|---|---|---|
server1(Master) | 10.10.10.1 | rhel6.5 | salt-master |
server2(minion) | 10.10.10.2 | rhel6.5 | salt-minion |
server3(minion) | 10.10.10.3 | rhel6.5 | salt-minion |
2、Host解析(3台)
[root@server1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10.10.1 server1
10.10.10.2 server2
10.10.10.3 server3
一、Grains模板
官网文档链接:https://docs.saltstack.cn/topics/tutorials/states_pt3.html#using-grains-in-sls-modules
1、基础命令
[root@server1 ~]# salt '*' grains.item ipv4
[root@server1 ~]# salt '*' grains.item uuid
[root@server1 ~]# salt '*' grains.item os
[root@server1 ~]# salt -G 'os:RedHat' test.ping
[root@server1 ~]# salt -G 'os:RedHat' cmd.run hostname
2、设置roles
(1)配置minion
[root@server2 ~]# vim /etc/salt/minion
[root@server2 ~]# /etc/init.d/salt-minion restart
[root@server3 ~]# vim /etc/salt/minion
[root@server3 ~]# /etc/init.d/salt-minion restart
(2)查看结果
[root@server1 ~]# salt '*' grains.item roles
[root@server1 ~]# salt -G 'roles:nginx' cmd.run 'ip addr'
3、设置grains.item
(1)配置grains
[root@server2 ~]# vim /etc/salt/grains
qqq:
- www
(2)查看结果
[root@server1 ~]# salt server2 grains.item qqq
二、Pillar模板
Pillar是Salt的系统之一,提供开发借口,和states建立方式类似,有一个入口文件top.sls,通过这个文件关联其他sls文件。其数据(存储在Master)是动态加载的,随时可以改变,相比grains更为灵活,
1、配置pillar目录
[root@server1 ~]# vim /etc/salt/master ###注意配置前面有空格
[root@server1 ~]# /etc/init.d/salt-master restart
[root@server1 ~]# mkdir -p /srv/pillar/web
2、配置文件
[root@server1 ~]# cat /srv/pillar/web/server.sls
{% if grains['fqdn'] == 'server2' %}
webserver: httpd
{% elif grains['fqdn'] == 'server3' %}
webserver: nginx
{% endif %}
[root@server1 ~]# vim /srv/pillar/top.sls
base:
'*':
- web.server
3、查看结果
[root@server1 ~]# salt '*' pillar.item webserver
[root@server1 ~]# salt '*' saltutil.refresh_pillar ###刷新pillar数据到minion
[root@server1 ~]# salt '*' pillar.item webserver ###查看某个pillar信息
[root@server1 ~]# salt '*' grains.item fqdn