自动化运维工具Saltstack安装配置[转载]

原文地址:自动化运维工具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文件。
自动化运维工具Saltstack安装配置[转载]

至此,服务端和客户端安装配置完成。

三、测试验证

[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证书
分享