配置内容接上篇
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,内容如下
3.测试grains的数据
推送成功
三.mster端配置grains,不用重启服务
1.在master端创建_grains文件
2.修改server3和server4的grains或者是删除grains文件,做到不影响下面master这边的grains
2.向server3和server4同步grains
查看server3和server4的salt缓存
四.pillar用法
grain和pillar区别
(1)grains存储的是静态、不常变化的内容,pillar则相反
(2)grains是存储在minion本地,而pillar存储在master本地
(3)minion有权限操作自己的grains值,如增加、删除,但minion只能查看自己的pillar,无权修改
1.配置pillar
修改server1上的master配置文件,开通pillar base目录,可以与grains共存
2.设置不同的主机名推送安装不同的服务
4.检测和查看的相关命令
查看采集的推送项目,按照不同的主机名通过pillar下的web.sls做不同的事情
群查看minion的/tmp下的文件,已经传过来了
远程给server4安装htppd文档
五.jinja模版的使用
Jinja是基于python的模板引擎,在saltstack中我们使用yaml_jinja渲染器来根据模板生产对应的配置文件,对于不同的操作系统或者不同的情况通过jinja可以让配置文件或者操作形成一种模板的编写方式。
模版文件里面变量使用{{名称}},例如`PORT`
变量使用Grains:{{ grains['fqdn_ip4'] }}
变量使用执行模块:{{ salt['network.hw_addr']('eth0') }}
变量使用Pillar:{{ pillar['apache']['PORT'] }}
1.jinja模版配置
以httpd下的web.sls为例,添加模版,端口,地址
2.修改files下的httpd.conf配置文件为变量格式
3.用jinja模版推送httpd服务
六.jinja模版的另外三种实现方法
1.方法一
在httpd.conf配置文件的最上面添加变量模块
用jinja模版给server3推送httpd服务
将httpd.conf里刚才上面写的删除,因为会与下面的这个方法冲突
监听端口修改为下图所示
将web.sls文件修改为以下设置
方法三:使用pillar
进入到pillar的base目录下
(2)配置文件第二种写法
salt server4 state.sls httpd.web
七.salt自动化推送keepalived+nginx
1.配置keepalived salt文件
vim service.sls
单击keepalived推送成功
2.由于keepalived高可用,主备的配置文件不一样,需要添加jinja模版
keepalived.conf里的state和priority写成变量
3.新添加一台虚拟机server5做keepalived的高可用
5.查看推送结果
将主server2上的keepalived关闭,服务到备server5上
本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1974127,如需转载请自行联系原作者