安装
安装EPEL作为安装Ansible的yum源(CentOS6.4)
rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm
安装Saltstack:
主控端:
yum install salt-mastster -y
chkconfig salt-master on
service salt-master start
被控端:
yum install salt-minion -y
chkconfig salt-minion on
service salt-minion start
防火墙:
主控端添加TCP 4505、4506端口规则,被控端无需配置,原理是被控端直接与主控端的zeromq建立长链接,接收广播到的任务信息并执行
iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT
iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4506 -j ACCEPT
配置
主控端:(配置完成后重启:service salt-master restart)
【/etc/salt/master】
# 绑定Master通信IP:
interface: 192.168.1.22
# 自动认证,避免手动运行salt-key来确认证书信任
auto_accept: True
# 指定Saltstack文件目录位置
file_roots:
base:
- /srv/salt
提示:
主控端没有配置自动认证时需要通过salt-key命令来进行证书认证操作:
salt-key -L #显示已经或未被认证的被控端id
salt-key -D #删除所有认证主机id证书
salt-key -d id #删除单个id证书(id为被控端id名)
salt-key -A #接受所有id证书请求
salt-key -a id #接受单个id证书请求(id为被控端id名)
被控端:(配置完成后重启:service salt-minion restart)
【/etc/salt/minion】
# 指定Master主机IP地址:
master: 192.168.1.22
# 修改被控端主机识别id,建议使用操作系统主机名来配置
id: wx
测试:(主控端输入命令)
通过test模块的ping方法,可以确认被控端是否与主控端建立信任关系及连通性是否正常。
salt 'wx' test.ping #'wx'是被控端配置的主机识别id,要探测所有的被控端则使用'*' #结果:
wx:
True
参考资料:
根据刘天斯《Python自动化运维技术与最佳实践》整理