自动化运维之SaltStack

  1. SaltStack分Master和minion端,也就是服务端和客户端。
  2. 我们一般选择C/S模式运行它,当网络环境局限性较大时,例如防火墙需过滤流量,限制端口使用,则使用SSH tunnel运行它。
  3. 下面我们以例子来说明,服务端IP地址为192.168.0.1,客户端IP地址为192.168.0.2 – 192.168.0.9
安装epel:yum install epel-release -y
在192.168.0.1上,
从EPEL安装saltstack服务端:yum install salt-master -y && service salt-master start

在192.168.0.2 - 192.168.0.9上
从EPEL安装saltstack客户端(监控端):yum install salt-minion -y && vi /etc/salt/minion
在192.168.0.2 - 192.168.0.9上,修改配置文件中的服务端IP地址,客户端需要知道服务端IP地址,也可以使用主机名,使用主机名时,需要在内网DNS上设置解析或设置本地hosts解析。

vi /etc/salt/minion 去掉#号并添加服务端IP地址
#master: 192.168.0.1

& service restart salt-minion

注意:所有服务器的主机名,必须合理解析,简单的办法是,每台主机把自己的主机名在本地hosts当中指向127.0.0.1,或者在内网DNS中对每个主机名进行正确的解析。
接下来进行pki部分的操作,我们需要在服务端中,设置允许访问服务端的客户端,

cd /etc/salt/pki/master
salt-key

可以看到,配置好且启动后的客户端会连接服务端,但是会出现在Unaccepted keys,需要进行一个允许的操作,下面我们是批量操作,允许所有未接受的主机状态变更为接受。

salt-key -A

然后挨个点一下Y
 测试一下连接,salt '*' test.ping,正常的主机会显示True值。
常用:
salt '*' sys.doc > /home/www/salt.txt
salt '*' test.ping
salt '*' cmd.run 'ping www.qq.com -c 5'
salt '*' cmd.run 'pa uaxw|grep java'
salt '*' grains.get ip_interfaces:eth0
salt -G os:CentOS cmd.run 'w' 
salt '*' service.available nginx
salt '*' service.reload nginx
salt '*' service.status nginx
salt '*' network.active_tcp