听说 saltstack 很强大,闲来无事玩一玩 saltstack。如下是安装配置过程。

先来理解一下 saltstack 百度上面偷了一个图:

saltstack 图解

如图:

主节点交 master 负责控制各个子节点, 各个子节点 minion 通过 zeroMQ 连接主节点并受主节点指令控制, 其中如果想要主节点也受到控制,主节点同时也要安装 minion 同时作为一个子节点的身份(注意一丢丢)。

那么我们开始安装 saltstack,如下安装过程参考了 老耿博客 , 根据环境不同略有改动,为了节点连接通畅我关闭了 SELinux 和 Firewalld 服务然后才进行测试的(虽然不安全,但此时是测试环境,可以忽略):

1、准备工作

准备两台机器,这两台机器都关闭 selinux,清空 iptables 规则并保存。

master:192.168.3.163  
slaver1:192.168.3.164  
slaver2:192.168.3.165  

2、编辑 hosts 文件

两台都设置,若机器太多,可以通过搭建 DNS,则不用在每台机器上设置这个vim /etc/hosts:

192.168.3.163  master.test.com  
192.168.3.164  slaver1.test.com  
192.168.3.165  slaver2.test.com  

3、设置 hostname

在 master 上

vim /etc/sysconfig/network

修改:

HOSTNAME=master.test.com  

在 slaver1 和 slaver2 上

vim /etc/sysconfig/network

HOSTNAME=slaver1.test.com  
HOSTNAME=slaver2.test.com  

4、安装

1)服务端安装

yum install -y epel-release  
yum install -y salt-master salt-minion  

2)客户端安装

yum install -y epel-release  
yum install -y salt-minion  

5、配置

服务端和客户端都要配置 master

vim /etc/salt/minion //在第16行添加,冒号后有一个空格

master: 192.168.0.109  

6、启动服务

1)服务端

salt-master start &  
Starting salt-master daemon:  [确定]  

本文章开始讲了:

主节点同时也要安装 minion 同时作为一个子节点的身份,所以我们运行一个子节点客户端:

salt-minion start &  
Starting salt-minion daemon:  [确定]  

2)客户端

salt-minion start  
Starting salt-minion daemon:  [确定]  

7、配置认证

1)在服务端上操作

salt-key -a  slaver1.test.com  
salt-key -a  slaver2.test.com  
salt-key -a  master.test.com  
salt-key  

说明:-a :accept ,-A:accept-all,-d:delete,-D:delete-all

可以使用 salt-key 命令查看到已经签名的客户端。此时我们在客户端的 /etc/salt/pki/minion 目录下面会多出一个minion_master.pub 文件。

2)测试验证

示例1: salt '*' test.ping //检测通讯是否正常 也可以指定其中一个 'slaver1.test.com'.

示例2: salt '*' cmd.run 'df -h' //远程执行命令

说明: 这里的 * 必须是在 master 上已经被接受过的客户端,可以通过 salt-key 查到,通常是我们已经设定的 id 值。关于这部分内容,它支持通配、列表以及正则。 比如两台客户端 web10、web11, 那我们可以写成 salt 'web*' salt 'web1[02]' salt -L 'web10,web11' salt -E 'web(10|11)' 等形式,使用列表,即多个机器用逗号分隔,而且需要加-L,使用正则必须要带-E选项。 它还支持 grainspillar,分别加 -G-I 选项,下面文章会介绍到。

备注:

在上面第7步骤我遇见了一个坑,测试连通性连接不上,我把服务器停止之后重新启动就好了,初步认为在启动 salt 服务器和节点的时候还没有公钥文件传输,连接会失败。

8、开机自启动

master 节点执行:

systemctl  enable salt-master  

slave* 节点执行:

systemctl  enable salt-minion  

查看启动状态:

systemctl status salt-master  

或者:

systemctl  enable salt-minion  

再次启动服务器即可直接启动。