配置内容接上篇

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角色

Saltstack (grains、pillar、jinja模版、haproy+keeplived)



在server3和server4的/etc/salt下创建grains,内容如下

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


3.测试grains的数据

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


Saltstack (grains、pillar、jinja模版、haproy+keeplived)


4.修改top.sls文件并推送

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

推送成功

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


三.mster端配置grains,不用重启服务

1.在master端创建_grains文件

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


2.修改server3和server4的grains或者是删除grains文件,做到不影响下面master这边的grains


Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


2.向server3和server4同步grains


Saltstack (grains、pillar、jinja模版、haproy+keeplived)


查看server3和server4的salt缓存

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


3.修改top.sls推送文件

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

推送成功

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


四.pillar用法

grain和pillar区别

(1)grains存储的是静态、不常变化的内容,pillar则相反

(2)grains是存储在minion本地,而pillar存储在master本地

(3)minion有权限操作自己的grains值,如增加、删除,但minion只能查看自己的pillar,无权修改


1.配置pillar

修改server1上的master配置文件,开通pillar base目录,可以与grains共存


Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


采集主机名

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


2.设置不同的主机名推送安装不同的服务

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


Saltstack (grains、pillar、jinja模版、haproy+keeplived)


3.在pillar下创建一个新的top.sls推送文件

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

刷新

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


4.检测和查看的相关命令

查看采集的推送项目,按照不同的主机名通过pillar下的web.sls做不同的事情

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


通过salt采集server3开启的服务

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


远程重启server3的nginx服务

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


将master server1上的文件群传给minion端

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


群查看minion的/tmp下的文件,已经传过来了

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


远程查看passwd文件

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


远程给server4安装htppd文档

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


远程给server4安装losf工具

Saltstack (grains、pillar、jinja模版、haproy+keeplived)



五.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为例,添加模版,端口,地址


Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


2.修改files下的httpd.conf配置文件为变量格式

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


3.用jinja模版推送httpd服务

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

server3 httpd服务8080端口正常

Saltstack (grains、pillar、jinja模版、haproy+keeplived)



六.jinja模版的另外三种实现方法

1.方法一

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

在httpd.conf配置文件的最上面添加变量模块

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

下面的监听端口上按python的方式取值

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

在files下面新建 vim lib.sls

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


将之前的web.sls里的template下面注释掉

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

用jinja模版给server3推送httpd服务

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)



2.方法二

将httpd.conf里刚才上面写的删除,因为会与下面的这个方法冲突

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


监听端口修改为下图所示

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

将web.sls文件修改为以下设置

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


vim lib.sls

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)



方法三:使用pillar

进入到pillar的base目录下

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


(1)配置文件第一种写法

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

vim httpd.conf

Saltstack (grains、pillar、jinja模版、haproy+keeplived)



(2)配置文件第二种写法


Saltstack (grains、pillar、jinja模版、haproy+keeplived)

vim httpd.conf

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


推送

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

salt server4 state.sls httpd.web


Saltstack (grains、pillar、jinja模版、haproy+keeplived)



七.salt自动化推送keepalived+nginx

1.配置keepalived salt文件

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

vim keepalived.conf,添加vip

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


vim install.sls

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

vim service.sls

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

单击keepalived推送成功


2.由于keepalived高可用,主备的配置文件不一样,需要添加jinja模版


Saltstack (grains、pillar、jinja模版、haproy+keeplived)


在install.sls里添加jinja模版

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


keepalived.conf里的state和priority写成变量

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


3.新添加一台虚拟机server5做keepalived的高可用

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

将server5加入到salt-key

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


4.修改top.sls文件并推送

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


5.查看推送结果

haproy+keeplived正常启动,vip在主上

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


将主server2上的keepalived关闭,服务到备server5上

Saltstack (grains、pillar、jinja模版、haproy+keeplived)


负载均衡haproxy正常

Saltstack (grains、pillar、jinja模版、haproy+keeplived)

Saltstack (grains、pillar、jinja模版、haproy+keeplived)




      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1974127,如需转载请自行联系原作者




相关文章: