一.salkstack是个什么东西?有啥用?
saltstack是一个配置管理系统,能够维护预定义状态的远程节点。saltstack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据。saltstack是运维人员提高工作效率、规范业务配置与操作的利器。Salt的核心功能: 使命令发送到远程系统是并行的而不是串行的 使用安全加密的协议 使用最小最快的网络载荷 提供简单的编程接口Salt同样引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止可以通过主机名,还可以通过系统属性。SaltStack 采用 C/S模式,minion与master之间通过ZeroMQ消息队列通信,默认监听4505端口。Salt Master运行的第二个网络服务就是ZeroMQ REP系统,默认监听4506端口。
举个例子
假设一个企业有多个服务器分布在不同的地理位置,运维人员需要更新所有服务器上的某个软件包。使用SaltStack,他们只需在中心主控端(Master)上进行一次操作,即可在所有目标从机(Minion)上执行该更新
又或者需要在一个大型网络中执行紧急安全补丁,SaltStack能够在几秒钟内将命令分发到所有相关节点,并并行执行,大大减少了暴露于风险的时间
二.配置过程
首先我思考的是,既然分为master和minion,那对于一台机器而言,是不是一台知道是master的了就不需要再扮演minion角色了呢?我思考过后认为可能应该一台机器可以同时扮演两种角色,所以我两种资源都下载了,但是我在我这个一个master和一个minion的虚拟机上,只暂时开对应服务就行了。
首先我去官网上找centOS7 安装salt x86_64,按照官网给出的安装步骤进行下载。
1.运行以下命令以安装 Salt Project 存储库和 key
sudo rpm --importhttps://repo.saltproject.io/salt/py3/redhat/7/x86_64/SALT-PROJECT-GPG-PUBKEY-2023.pub
curl -fsSL https://repo.saltproject.io/salt/py3/redhat/7/x86_64/latest.repo | sudo tee /etc/yum.repos.d/salt.repo
2.运行以清除存储库元数据。
sudo yum clean expire-cache
3.安装 salt-minion、salt-master 或其他 Salt 组件
sudo yum install salt-mastersudo yum install salt-minionsudo yum install salt-sshsudo yum install salt-syndicsudo yum install salt-cloudsudo yum install salt-api
4.启用并启动 salt-minion、salt-master 或其他 Salt 的服务 组件:
sudo systemctl enable salt-master && sudo systemctl start salt-mastersudo systemctl enable salt-minion && sudo systemctl start salt-minionsudo systemctl enable salt-syndic && sudo systemctl start salt-syndicsudo systemctl enable salt-api && sudo systemctl start salt-api
上图
master:
minion:
出现了问题!
我在使用saltstack的时候。Minion 配置(/etc/salt/minion)改了这几个地方。
然后我在minion机器上使用了
salt -key -L
结果如图,同样这个命令我也使用在了master机器上,也是一样的图。
解决:
这里我犯了两个错误:
第一个:salt key 命令的作用是:master看minion的,不是用于minion上的命令。所以问题在于我master为什么没有显示连接的信息。
然后就是第二个问题,我是怎么解决的连接问题的。
我修改id,换成了ip地址,结果意外连通了。
总结:
完成了基本的搭建和salt ping,连接成功。但是对于minion和master的连通配置处理上仍有误打误撞解决的情况,需要在以后的使用中加强学习。