定义
saltstack是一个配置管理系统,能够维护预定义状态的远程节点。
saltstack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据。
saltstack是运维人员提高工作效率、规范业务配置与操作的利器。
Salt的核心功能
使命令发送到远程系统是并行的而不是串行的
使用安全加密的协议
使用最小最快的网络载荷
提供简单的编程接口
Salt同样引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止可以通过主机名,还可以通过系统属性。
SaltStack 采用 C/S模式,minion与master之间通过ZeroMQ消息队列通信,默认监听4505端口。
Salt Master运行的第二个网络服务就是ZeroMQ REP系统,默认监听4506端口
==一、saltstack部署
主机ip | 作用 |
---|---|
server1(172.25.1.1) | master(主节点) |
server2(172.25.1.2) | minion(节点1) |
server4(172.25.1.4) | minion(节点2) |
官方网站:
https://repo.saltstack.com/#rhel
阿里云镜像安装:
https://developer.aliyun.com/mirror/saltstack
首先查看三台主机防火墙
1、部署
master部署:
[root@server1 ~]# yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm
[root@server1 yum.repos.d]# yum list salt-master #要求高于3000.2,bug修复了
salt-master.noarch 3000.3-1.el7 salt-latest
[root@server1 yum.repos.d]# yum install -y salt-master
[root@server1 yum.repos.d]# systemctl enable --now salt-master
[root@server1 yum.repos.d]# netstat -antlp #启动4505 4506两个端口
[root@server1 yum.repos.d]# yum install -y python-setproctitle.x86_64 #显示更多信息
[root@server1 yum.repos.d]# systemctl restart salt-master
minion部署:
[root@server2 ~]# yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm
[root@server2 ~]# yum install -y salt-minion
[root@server4 ~]# yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm
[root@server4 ~]# yum install -y salt-minion
[root@server2 ~]# cd /etc/salt/
[root@server2 salt]# ls
cloud cloud.deploy.d cloud.profiles.d master minion pki proxy.d
cloud.conf.d cloud.maps.d cloud.providers.d master.d minion.d proxy roster
[root@server1 yum.repos.d]# yum install -y lsof
[root@server1 yum.repos.d]# lsof -i :4505
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
/usr/bin/ 32707 root 15u IPv4 596926 0t0 TCP *:4505 (LISTEN)
[root@server1 yum.repos.d]# lsof -i :4506
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
/usr/bin/ 32713 root 23u IPv4 597663 0t0 TCP *:4506 (LISTEN)
/usr/bin/ 32713 root 31u IPv4 629187 0t0 TCP server1:4506->server2:52456 (ESTABLISHED)
[root@server1 yum.repos.d]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
server2
Rejected Keys:
[root@server1 yum.repos.d]# salt-key -A #允许所有
[root@server1 yum.repos.d]# lsof -i :4505
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
/usr/bin/ 32707 root 15u IPv4 596926 0t0 TCP *:4505 (LISTEN)
/usr/bin/ 32707 root 17u IPv4 651515 0t0 TCP server1:4505->server2:60478 (ESTABLISHED)
[root@server1 yum.repos.d]# lsof -i :4506
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
/usr/bin/ 32713 root 23u IPv4 597663 0t0 TCP *:4506 (LISTEN)
[root@server1 master]# pwd
/etc/salt/pki/master
[root@server1 master]# tree .
[root@server1 master]# salt '*' test.ping
server4:
True
server2:
True
[root@server1 master]# salt -E 'server[1-4]' test.ping #正则表达式匹配
server2:
True
server4:
True
[root@server1 master]# salt -E 'server[1-4]' cmd.run hostname
server2:
server2
server4:
server4
minion:不同minon操作相同
[root@server2 ~]# cd /etc/salt/
[root@server2 salt]# vim minion
master: 172.25.1.1
[root@server2 salt]# systemctl enable --now salt-minion.service
#公钥相同
[root@server2 minion]# pwd
/etc/salt/pki/minion
[root@server2 minion]# md5sum minion_master.pub
663ffed61d7d1131fec1460b0cd27449 minion_master.pub
[root@server1 master]# md5sum master.pub
663ffed61d7d1131fec1460b0cd27449 master.pub