SaltStack自动化运维管理(一)——简介与部署

  • 1. saltstack简介
  • 2. saltstack安装与配置
  • 2.1 设置官方YUM仓库
  • 2.2 master端设置
  • 2.3 minion端配置
  • 2.4 master端执行命令允许minion连接


1. saltstack简介

  • saltstack是一个配置管理系统,能够维护预定义状态的远程节点。
  • saltstack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据。
  • saltstack是运维人员提高工作效率、规范业务配置与操作的利器。
  • Salt的核心功能
  • 使命令发送到远程系统是并行的而不是串行的
  • 使用安全加密的协议
  • 使用最小最快的网络载荷(因为是使用消息队列通信)
  • 提供简单的编程接口
  • Salt同样引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止可以通过主机名,还可以通过系统属性。

saltstack通信机制

SaltStack 采用 C/S模式,minion与master之间通过ZeroMQ消息队列通信,默认监听4505端口。

saltstack 图形界面 saltstack管理windows_消息队列

Salt Master运行的第二个网络服务就是ZeroMQ REP系统,默认监听4506端口。

saltstack 图形界面 saltstack管理windows_saltstack 图形界面_02

2. saltstack安装与配置

官网:https://www.saltstack.com/

官方文档:https://docs.saltstack.com/en/latest/

这里暂时先准备三台虚拟机来做此次实验(server1,server2,server3),配置虚拟机可以上网(配置方法点击这里)。

2.1 设置官方YUM仓库

在server1,server2,server3上:

cd /etc/yum.repos.d/
yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm
yum clean all
yum repolist
yum list salt-master

在server1上安装salt-master

yum install -y salt-master

在server2和server3上安装salt-minion

yum install -y salt-minion

2.2 master端设置

在server1:

systemctl enable salt-master	#设置master自启动
systemctl start salt-master		#启动master服务
netstat -antlp					#查看端口

saltstack 图形界面 saltstack管理windows_自动化运维_03

ps ax
yum install -y python-setproctitle.x86_64
systemctl restart salt-master
ps ax

saltstack 图形界面 saltstack管理windows_消息队列_04

saltstack 图形界面 saltstack管理windows_消息队列_05

2.3 minion端配置

在server2和server3:

vim /etc/salt/minion
master: 172.25.1.1				#设置master主机的ip
systemctl enable salt-minion
systemctl start salt-minion
netstat -antlp					#查看端口

saltstack 图形界面 saltstack管理windows_SaltStack_06


saltstack 图形界面 saltstack管理windows_自动化运维_07

2.4 master端执行命令允许minion连接

salt-key -L
salt-key -A
salt-key -L

saltstack 图形界面 saltstack管理windows_saltstack 图形界面_08

yum install -y lsof
lsof -i :4505

saltstack 图形界面 saltstack管理windows_自动化运维_09

salt '*' test.ping
salt server2 test.ping
salt server3 test.ping
salt -E 'server[1-4]' test.ping
salt -E 'server[1-4]' cmd.run hostname
salt -E 'server[1-4]' cmd.run df
salt -E 'server[1-4]' cmd.run 'df -h'

saltstack 图形界面 saltstack管理windows_消息队列_10

saltstack 图形界面 saltstack管理windows_自动化运维_11


saltstack 图形界面 saltstack管理windows_自动化运维_12

注意:如果在master端找不到minion端,可能的原因有两个:

  • 防火墙有问题,可以将防火墙关闭
  • minion主机名修改后,master端无法及时知晓,可以将minion端/etc/salt/路径下的
    minion_id文件删掉,再重启minion端即可

到此,一个简单的SaltStack自动化运维管理系统就部署好了。