Saltstack自动化运维工具

1、安装配置

准备两台机器

master:172.25.77.4

minion:172.25.77.5

下载所需要的包,放到yum源里

Saltstack自动化运维工具

server4安装master

Saltstack自动化运维工具

server5安装minion

Saltstack自动化运维工具

在两台机器/etc/hosts加入本地解析

编辑server5的minion配置文件,指定master

Saltstack自动化运维工具

Saltstack自动化运维工具

master端使用 salt-key -L 命令查看到已经签名的客户端

Saltstack自动化运维工具

salt-key -A添加所有

Saltstack自动化运维工具

test.ping检测通讯是否正常

Saltstack自动化运维工具


在minion端的 /etc/salt/pki/minion 目录下面会多出一个minion_master.pub 文件

Saltstack自动化运维工具

与master端的 master.pub一致

Saltstack自动化运维工具


二、Salt一键部署

在master端打开fle_roots

Saltstack自动化运维工具

Saltstack自动化运维工具

建立这个网站,启动服务

1、一键部署httpd

在base目录下,建立httpd目录,编辑install.sls

Saltstack自动化运维工具

Saltstack自动化运维工具

运行,在minion端自动安装了httpd服务,将httpd的配置文件放到master的base/httpd/files下

Saltstack自动化运维工具Saltstack自动化运维工具Saltstack自动化运维工具

此时在master端更改配置,在minion端生效,这里我们来改变端口进行测试

现在httpd服务是80端口

Saltstack自动化运维工具

在master端更改httpd的配置文件,将端口改为8080

Saltstack自动化运维工具Saltstack自动化运维工具

再次运行,在minion端查看,端口被修改为8080

Saltstack自动化运维工具Saltstack自动化运维工具


上面是一起安装和重新加载,我们还可以安装和服务重新加载分开

先建立insatllback.sls安装文件

Saltstack自动化运维工具

在建立服务重新加载service文件,如下图

Saltstack自动化运维工具

还是用更改端口来测试,现在端口是8080,我们在将其改为80

Saltstack自动化运维工具

运行service Saltstack自动化运维工具

查看,成功将端口修改为80

Saltstack自动化运维工具


2、一键部署源码安装ngixn

先要准备nginx源码安装的依赖性,在base目录下建立pkgs目录,编辑install.sls

Saltstack自动化运维工具

在准备一台机器,server6做minion来安装部署ngxin

Saltstack自动化运维工具

一样,在base目录下建立ngix目录,编辑install.sls,将tar包放在nginx目录下的files下

Saltstack自动化运维工具

Saltstack自动化运维工具

运行安装ngixn

Saltstack自动化运维工具Saltstack自动化运维工具

在server6 minion端将nginx.conf配置放到server4 master的指定目录下

Saltstack自动化运维工具

在files里有配置文件和写好的启动ngixn脚本

Saltstack自动化运维工具

现在我们来实现创建ngxin用户并且自动启动加载

在server6端,此时nginx用户不存在

Saltstack自动化运维工具

在master端,base目录下建立users/编辑创建用户和用户组

Saltstack自动化运维工具

Saltstack自动化运维工具

并将其指定到nginx的安装部署文件里

Saltstack自动化运维工具Saltstack自动化运维工具

编辑nginx的service.sls这个也可以更改部署配置文件信息

Saltstack自动化运维工具

这里将配置文件也更改,一起测试

Saltstack自动化运维工具

完成后运行nginx的server.sls

Saltstack自动化运维工具

在server6 minion端查看,nginx用户和运行情况和配置文件

Saltstack自动化运维工具


Saltstack自动化运维工具



3、一键推送

在上面配置好前提下,可以设置多台机器一键推送,在base目录下建立编辑top.sls,即可实现Saltstack自动化运维工具

Saltstack自动化运维工具


4、一键部署haproxy并实现负载均衡

这里为了方便直接在master server4端安装

现在server4上安装minion,并加入salt-key

Saltstack自动化运维工具Saltstack自动化运维工具Saltstack自动化运维工具


Saltstack自动化运维工具

实现负载均衡,在yun源里加入LoadBalancer

Saltstack自动化运维工具

在base目录下建立haproxy的install.sls,完成后运行

Saltstack自动化运维工具Saltstack自动化运维工具

运行过程中报错,只完成了安装,这是因为没有配置文件,将安装好产生的配置文件发送到insatll.sls里指定目录下再次运行即可

Saltstack自动化运维工具Saltstack自动化运维工具

实现负载均衡,更改全局base目录下的haproxy.cfg配置文件

Saltstack自动化运维工具Saltstack自动化运维工具

完成后可以单独执行install.sls,也可以其加入到一见推送top.sls里

Saltstack自动化运维工具

在之前server5部署的httpd和server6部署的nginx默认发布目录下写入内容,方便测试

Saltstack自动化运维工具Saltstack自动化运维工具

测试查看负载均衡,如图:完成实现

Saltstack自动化运维工具


三、grains和pillar

grains负责采集客户端的一些基本信息;pillar数据是存储在master端的,而在客户端有缓存,通常pillar数据是一些配置信息。


1、grins配置

1)在master查看minion的grains的值

Saltstack自动化运维工具

2)三种方法设置grains

第一种:种在minion配置文件里找到grains节点进行添加或编辑,如下图

Saltstack自动化运维工具Saltstack自动化运维工具Saltstack自动化运维工具

第二种方法:在/etc/salt建立编写grains文件

Saltstack自动化运维工具Saltstack自动化运维工具Saltstack自动化运维工具

第三种方法:在master的base目录下建python文件来从minion上取得环境参数

Saltstack自动化运维工具Saltstack自动化运维工具

然后将此自定义grains文件同步到minion上

Saltstack自动化运维工具

Saltstack自动化运维工具

并且grains可以和一键推送结合,可以配合grains的指定值来推送,如下图

在salt是linux的机器上安装httpd服务

Saltstack自动化运维工具Saltstack自动化运维工具

运行测试没有报错

Saltstack自动化运维工具


2、pillar配置

首先需要在master配置文件中修改pillar根目录

Saltstack自动化运维工具Saltstack自动化运维工具

这个目录没有,需要自己建立,完成后重启服务,并在目录下可以建立目录,编辑pillar数据

Saltstack自动化运维工具Saltstack自动化运维工具

然后在在pillar目录中添加top.sls

Saltstack自动化运维工具

可以通过命令salt ... refresh_pillar来刷新minion的pillar数据

Saltstack自动化运维工具

完成后进行验证即可

Saltstack自动化运维工具