Salt的核心功能
Salt同样引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止可以通过主机名,还可以通过系统属性。
SaltStack 采用 C/S模式,minion与master之间通过ZeroMQ(0MQ、ZMQ)消息队列通信,默认监听4505端口。
server端通过4505端口对client进行推送,如下图:
Salt Master运行的第二个网络服务就是ZeroMQ REP系统,默认监听4506端口。
master端通过4506端口接收minion端接收响应的消息
saltstack官网:https://www.saltstack.com/
实验环境:
server2 172.25.70.2 salt-master
server3 172.25.70.3 salt-minion
server4 172.25.70.4 salt-minion
上述主机关闭火墙及selinux 可以联网
1.下载repo文件
saltstack官网教程:https://repo.saltstack.com/#rhel
也可通过阿里镜像的教程(可能不是最新版本的):https://developer.aliyun.com/mirror/saltstack?spm=a2c6h.13651102.0.0.3e221b11ehPZLK
三台主机都下载repo文件
yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm
server端安装salt-master:
yum install -y salt-master
systemctl enable --now salt-master
查看server端的主配置文件
vim /etc/salt/master
里面规定了推送消息的4505端口及接收响应消息的4506端口
:
以及salt的base路径:
查看进程
ps ax
yum install -y python-setproctitle.x86_64
systemctl restart salt-master
ps ax
yum install salt-minion -y
修改minion的配置文件,添加master端信息:
vim /etc/salt/minion
systemctl restart salt-minion
systemctl enable --now salt-minion
3.查看端口连接
查看master端此时4505端口及4506端口的占有情况
yum install -y lsof
lsof -i :4505
lsof -i :4506
此时的4505端口并没有与minion端建立通信,但4506端口已经进行了连接
这是因为master的4505端口需要认证,不能让所有minion都能连接,这样没有安全性。
此时minion端主机未通过认证,4505端口与其不能通信。
master端查看添加允许访问的主机:
salt-key -L #查看允许连接的主机
salt-key -A #允许所有minion端连接
salt-key -a server4 #添加指定主机
master主机的公钥在/etc/salt/pki/master下
minion主机的公钥在/etc/salt/pki/minion下
公钥的md5值相同:
4.可能遇到的问题
当master端已经添加了minion主机后,如果minion主机修改了主机名,可能master端查看到的主机名依旧是原来的。
这是因为minion端的/etc/salt/minion_id记录着原本连接时的主机名,这是一个缓存文件。
所以把这个文件删除了就可以了。下次连接时这个文件会再次生成,记录新的主机名。