原文地址:自动化运维工具Saltstack安装配置
Saltstack是一个自动化运维管理工具,基于Python开发,也是基于C/S架构(服务端 master 和客户端 minions)。
Saltstatck整合了Puppet和Chef两者的功能,更加强大,更适合大规模批量管理服务器,并且它比Puppet更容易配置,可以使用EPEL快速安装,且支持大部分操作系统,包括Windows(Windows不能作为服务端)。
一、安装前准备工作
此次环境为一台服务端,两台客户端,主机信息分别如下:
服务端:192.168.0.120 主机名:master.heminjie.com 操作系统:CentOS 6.8 x64 客户端1:192.168.0.121 主机名:client1.heminjie.com 操作系统:CentOS 6.8 x64 客户端2:192.168.0.122 主机名:client2.heminjie.com 操作系统:CentOS 6.8 x64
注:以下需要在哪台主机执行操作命令,都会在后面括号中标注出来。
关闭iptables(master,client1,client2)
# service iptables stop # chkconfig iptables off
如不想关闭iptables,请开放TCP 4505(salt的消息发布专用端口)和4506(客户端与服务端通信的端口)两个端口,客户端无需操作(master)
# iptables -I INPUT -m state --state new -m tcp --dport 4505 -j ACCEPT # iptables -I INPUT -m state --state new -m tcp --dport 4506 -j ACCEPT
关闭selinux(master,client1,client2)
vi编辑/etc/selinux/config文件
将SELINUX=enforcing改为SELINUX=disabled并保存
编辑hosts文件(master,client1,client2)
# vi /etc/hosts 192.168.0.120 master.heminjie.com 192.168.0.121 client1.heminjie.com 192.168.0.122 client2.heminjie.com
重启服务器,使其配置完全生效(master,client1,client2)
二、Saltstack安装配置
主服务端安装(master)
# yum install -y epel-release # yum install -y salt-master
客户端安装(client1,client2)
# yum install -y epel-release # yum install -y salt-minion
客户端配置(client1,client2)
配置master IP地址,修改第16行,去掉注释符号,注意冒号后有一个空格
# vi /etc/salt/minion master: 192.168.0.120
启动服务并设为开机自启动(master)
# service salt-master start # chkconfig salt-master on
启动服务并设为开机自启动(client1,client2)
# service salt-minion start # chkconfig salt-minion on
服务端配置(master)
Saltstack使用公共密钥加密来保证master和minions的安全通信,安装时Salt会自动生成这些证书,但需要在master端验证minions的密钥文件,确保master和minions之间是授信的。
用salt-key -a分别验证两台客户端的密钥文件
[root@master ~]# salt-key -a client1.heminjie.com The following keys are going to be accepted: Unaccepted Keys: client1.heminjie.com Proceed? [n/Y] y Key for minion client1.heminjie.com accepted. [root@master ~]# salt-key -a client2.heminjie.com The following keys are going to be accepted: Unaccepted Keys: client2.heminjie.com Proceed? [n/Y] y Key for minion client2.heminjie.com accepted. |
用salt-key list可以看到已经授权的两台客户端的key文件。
至此,服务端和客户端安装配置完成。
三、测试验证
[root@master ~]# salt '*' test.ping //ping命令测试两台客户端的连通性 client2.heminjie.com: True client1.heminjie.com: True
[root@master ~]# salt '*' cmd.run "df -h" //查看两台客户端磁盘使用状况 client1.heminjie.com: Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_qmail-lv_root 14G 2.4G 11G 19% / tmpfs 245M 12K 245M 1% /dev/shm /dev/xvda1 477M 82M 370M 19% /boot client2.heminjie.com: Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_client2-lv_root 6.5G 913M 5.3G 15% / tmpfs 245M 12K 245M 1% /dev/shm /dev/xvda1 477M 63M 389M 14% /boot
说明: 这里salt后面的 * 必须是在 master 上已经被接受过的客户端,* 代表全部客户端,也可以修改为指定的某个或某几个主机;
比如只指定一台客户端,可以写成 salt 'client1.heminjie.com'
比如N个客户端,只指定其中两台,可以写成 salt -L 'client1.heminjie.com,client2.heminjie.com'
salt key相关命令:
salt-key list 查看客户端所有id salt-key -a id 认证单个主机id证书请求 salt-key -A 认证所有主机id证书请求 salt-key -d id 删除单个主机id证书 salt-key -D 删除所有认证主机id证书 |