Linux-SaltStack基础
文章目录
- SaltStack
- SaltStack架构
- SaltStack部署
🏡作者主页:点击!
🤖Linux专栏:点击!
⏰️创作时间:2025年02月24日18点59分
SaltStack
客户端服务端架构:C/S 架构
数据传输采用了AES高级加密保证安全性
认证采用SSL的一个方式
SaltStack以Salt项目为核心,主要包含两大功能模块
- 配置管理系统
- 分布式远程命令执行系统
SaltStack具备六大特征
- 易用性
- 并行执行
- 成熟稳定
- 易集成
- 高性能——异步消息(zeroMQ)消息传递库,从而支持异步消息的传递,意味着处理大量任务时可以保持一个高效的性能
- 开源
SaltStack架构
Salt master和Salt minion
SaltStack采用的是C/S架构,服务器运行的是 Salt-master 服务的 salt master,客户端运行了 Salt-minion 服务的 salt minion。
Master 向 minion 发送命令,minion 向特定的 master 注册
saltStack 采用了发布/订阅的模式,master是任务的发布者,minion 则通过订阅的方式获取 master 发布的任务
Targets
- Master 将应当执行任务的一组 minion 定义为 Target
开放的事件系统
- Event bus 用于事件管理系统中 master 和 minion 之间的内部通信
- zeroMQ 和 Tornado 用于 minion 从事件管理系统订阅 Job 及执行结果的可插拔组件
Grains 和 pillar
- Grains运行在minion中,收集minion的信息,如:OS、域名、IP地址等
- Grains是静态数据,仅系统信息发生变化或用户自定义了某些参数后才会刷新
- Pillar 存放着由 master 定义的动态数据,当需要时,再推进 minion
Beacons 和 reactors
- Beacons 和 reactors 用于监控
- Beacons 运行在 minion 中,故障出现时,会触发 reactors 来提供故障处理的帮助信息
Master与Minion的认证和通信
- Master 与 Minion 之间通过公钥私钥进行认证
- Master 与 Minion 之间通过 4505 和 4506 进行通信
4505:发布任务
4506:返回执行结果
之间使用 AES 确保数据传输的安全性每当 Master 重新启动,或者使用 salt-key 命令删除 Minion 的密钥的时候,都会生成一个新的 AES 密钥,并且所有链接的 Minioin,它都需要重新进行一个身份验证,以接收更新的密钥
这种机制确保了即使在密钥泄露的情况下也能保证系统的安全性
SaltStack部署
- 安装前检查
- 安装 salt-master 和 salt-minion
bootstrap 安装:使用 saltStack 提供的脚本进行安装
手动安装:使用 yum 源进行安装- 安装后配置
在minion中配置要注册的 master- 启动服务
- 配置 master 和 minion 之间的认证
- 配置后检查
Master 和 Minion 重要配置
- Master 配置文件默认 /etc/salt/master,同时包含了 /etc/salt/master.d 下所有的 .conf 文件
- Minion 中关于 master 配置文件默认为 /etc/salt/master,同时包含了 /etc/salt/master.d 下所有 .conf 文件
- Minion 中关于 Minion 配置文件默认为 /etc/salt/minion,同时包含了 /etc/salt/minino.d 下所有 .conf 文件
interface: 0.0.0.0 #接口地址(0表示不限制) publish_port: 4505 #做链接端口,认证通信的一个端口,启动服务之前要去检查端口是否被占用 ret_port: 4506 #返回命令信息 pki_dir: /etc/salt/pki/master #保留客户端发送过来的公钥文件的存放目录 file_roots: #默认下面 base:/srv/salt/ 在saltstack master 节点通常负责管理和一些存储的一些文件默认文件夹
Master 和 Minion 的互信认证配置
master 上使用命令 salt-key 接收 minion 发来的密钥
- -A:接收全部密钥
- -D:删除全部密钥
- -L:列出全部密钥
- -a:接收指定密钥
- -j:拒绝指定密钥
- -d:删除指定密钥