Saltstack (grains、pillar、jinja模版、haproy+keeplived)
文章目录
[隐藏]
- 一、Grains
- 二、minion端配置grains
- 1. 测试grains的数据
- 2. 修改top.sls文件并推送
- 三、mster端配置grains,不用重启服务
- 四、pillar用法
- 1. 配置pillar
- 2. 设置不同的主机名推送安装不同的服务
- 3. 在pillar下创建一个新的top.sls推送文件
- 4. 检测和查看的相关命令
- 五、jinja模版的使用
- 1. jinja模版配置
- 2. 修改files下的httpd.conf配置文件为变量格式
- 3. 用jinja模版推送httpd服务
- 六、jinja模版的另外三种实现方法
- 1. 方法一
- 2. 方法二
- 3. 方法三:使用pillar
- 七、salt自动化推送keepalived+nginx
配置内容接上篇
- redhat6.5
-
server1 172.25.29.1 salt-master
-
server2 172.25.29.2 salt-minion haproy+keeplived
-
server3 172.25.29.3 salt-minion nginx
-
server4 172.25.29.4 salt-minion nginx
-
server5 172.25.29.5 salt-minion haproy+keeplived
做之前配置好本地解析
一、Grains
grains是minion第一次启动的时候采集的静态数据,可以用在salt的模块和其他组件中。其实grains在每次的minion启动(重启)的时候都会采集,即向master汇报一次的。
二、minion端配置grains
修改server3和server4的salt-minion,设定nginx角色
在server3和server4的/etc/salt下创建grains,内容如下
1. 测试grains的数据
2. 修改top.sls文件并推送
推送成功
三、mster端配置grains,不用重启服务
1. 在master端创建_grains文件
2. 修改server3和server4的grains或者是删除grains文件,做到不影响下面master这边的grains
3. 向server3和server4同步grains
查看server3和server4的salt缓存
4. 修改top.sls推送文件
推送成功
四、pillar用法
grain和pillar区别
(1)grains存储的是静态、不常变化的内容,pillar则相反
(2)grains是存储在minion本地,而pillar存储在master本地
(3)minion有权限操作自己的grains值,如增加、删除,但minion只能查看自己的pillar,无权修改
1. 配置pillar
修改server1上的master配置文件,开通pillar base目录,可以与grains共存
采集主机名
2. 设置不同的主机名推送安装不同的服务
3. 在pillar下创建一个新的top.sls推送文件
刷新
4. 检测和查看的相关命令
查看采集的推送项目,按照不同的主机名通过pillar下的web.sls做不同的事情
通过salt采集server3开启的服务
远程重启server3的nginx服务
将master server1上的文件群传给minion端
群查看minion的/tmp下的文件,已经传过来了
远程查看passwd文件
远程给server4安装htppd文档
远程给server4安装losf工具
五、jinja模版的使用
Jinja是基于python的模板引擎,在saltstack中我们使用yaml_jinja渲染器来根据模板生产对应的配置文件,对于不同的操作系统或者不同的情况通过jinja可以让配置文件或者操作形成一种模板的编写方式。
模版文件里面变量使用{{名称}},例如{{PORT}}
变量使用Grains:{{ grains[‘fqdn_ip4’] }}
变量使用执行模块:{{ salt‘network.hw_addr’ }}
变量使用Pillar:{{ pillar[‘apache’][‘PORT’] }}
1. jinja模版配置
以httpd下的web.sls为例,添加模版,端口,地址
2. 修改files下的httpd.conf配置文件为变量格式
3. 用jinja模版推送httpd服务
server3 httpd服务8080端口正常
六、jinja模版的另外三种实现方法
1. 方法一
在httpd.conf配置文件的最上面添加变量模块
下面的监听端口上按python的方式取值
在files下面新建 vim lib.sls
将之前的web.sls里的template下面注释掉
用jinja模版给server3推送httpd服务
2. 方法二
将httpd.conf里刚才上面写的删除,因为会与下面的这个方法冲突
监听端口修改为下图所示
将web.sls文件修改为以下设置
vim lib.sls
3. 方法三:使用pillar
进入到pillar的base目录下
(1)配置文件第一种写法
vim httpd.conf
(2)配置文件第二种写法
vim httpd.conf
推送
salt server4 state.sls httpd.web
七、salt自动化推送keepalived+nginx
1. 配置keepalived salt文件
vim keepalived.conf,添加vip
vim install.sls
vim service.sls
单击keepalived推送成功
2. 由于keepalived高可用,主备的配置文件不一样,需要添加jinja模版
在install.sls里添加jinja模版
keepalived.conf里的state和priority写成变量
3.新添加一台虚拟机server5做keepalived的高可用
将server5加入到salt-key
4. 修改top.sls文件并推送
5. 查看推送结果
haproy+keeplived正常启动,vip在主上
将主server2上的keepalived关闭,服务到备server5上
负载均衡haproxy正常
原文出处:51cto -> http://anfishr.blog.51cto.com/8534000/1974127