SaltStack简介
saltstack是一个配置管理系统,能够维护预定义状态的远程节点
saltstack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据
saltstack是运维人员提高工作效率、规范业务配置与操作的利器
Salt的核心功能:
使命令发送到远程系统是并行的而不是串行的
使用安全加密的协议
使用最小最快的网络载荷
提供简单的编程接口
Salt同样引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止可以通过主机名,还可以通过系统属性
SaltStack通信机制:
SaltStack采用C/S模式,由master和minion构成,master是服务器端,表示一台服务器;minion是客户端,表示有多台主机,在master上发送命令给符合条件的minion,minion就会执行相应的命令;minion与master之间通过ZeroMQ消息队列通信,默认监听4505端口;Salt Master运行的第二个网络服务就是ZeroMQ REP系统,默认监听4506端口(SaltStack的master端监听4505和4506端口,4505为master和minion认证通信端口,4506为master用来发送命令或接收minion的命令执行返回信息的端口)
当客户端启动后,会主动连接master端注册,然后一直保持该TCP连接,而master通过这条TCP连接对客户端进行控制;如果断开连接,master对客户端将不能进行控制,但是,当客户端检查到连接断开后,会定期向master端请求注册连接
官网:
Support for SaltStackhttps://www.vmware.com/support/acquisitions/saltstack.html
SaltStack安装与配置
阿里云saltstack镜像地址:
此时安装salt-master时提示需要python3.6
配置CentOS镜像解决python3.6依赖
配置完成后即可成功安装
实验环境:
server51主机为salt-master IP=172.25.100.51
server52主机为salt-minion IP=172.25.100.52
server53主机为salt-minion IP=172.25.100.53
salt-master和salt-minion均需要python3.6
SaltStack远程执行
首先在minion端配置自己的master并启动salt-minion服务
在salt-master端查看并允许minion连接
测试:
master端和minion端的密钥认证关系:
1、远程执行shell命令
Salt命令由三个主要部分构成:
salt '<target>' <function> [arguments]
target ##指定哪些minion, 默认的规则是使用glob匹配minion id(salt '*' test.ping)target也可以使用正则表达式(salt -E 'server[1-3]' test.ping);也可以指定列表(salt -L 's