Saltstack的部署 认证机制 远程执行 目标匹配
SaltStack介绍
自动化运维工具
作为一个运维人员,很大一部分工作是在业务的配置管理和状态维护以及版本发布上,而当业务场景及公司规模上了一定规模后,人为手工的去做这些工作将变得极其困难,此时我们将需要利用一些自动化运维的工具来达到批量管理的目的。
常用的自动化运维工具有:
- puppet
- ansible
- saltstack
此三款属同类工具,皆可用来提高运维管理的效率,但它们又各有优势,目前主流的自动化运维工具是ansible
和saltstack
。其中ansible
无需安装客户端,这是其最大的优势,而saltstack
则需要安装客户端工具,类似zabbix
的agent。应用场景方面,ansible
常用于小型企业,而saltstack
则常用于中大型企业,因为ansible
无法并行执行而saltstack
可以并行。但不论其特点如何,本质上均属同类,所以只需要掌握一种即可轻松胜任运维工作。
可以将SaltStack
理解为神笔马良的那只笔!
saltstack的特点
- 基于python开发的C/S架构配置管理工具
- 底层使用ZeroMQ消息队列pub/sub方式通信
- 使用SSL证书签发的方式进行认证管理,传输采用AES加密
saltstack服务架构
在saltstack
架构中服务器端叫Master
,客户端叫Minion
。
在Master
和Minion
端都是以守护进程的模式运行,一直监听配置文件里面定义的ret_port(接受minion请求)和publish_port(发布消息)的端口。
当Minion
运行时会自动连接到配置文件里面定义的Master
地址ret_port端口进行连接认证。
saltstack
除了传统的C/S架构外,其实还有一种叫做masterless
的架构,其不需要单独安装一台 master 服务器,只需要在每台机器上安装 Minion
端,然后采用本机只负责对本机的配置管理机制服务的模式。
SaltStack四大功能与四大运行方式
SaltStack
有四大功能,分别是:
- 远程执行
- 配置管理/状态管理
- 云管理(cloud)
- 事件驱动
SaltStack
可以通过远程执行实现批量管理,并且通过描述状态来达到实现某些功能的目的。
SaltStack
四大运行方式:
- local本地运行
- Master/Minion传统方式
- Syndic分布式
- Salt ssh
saltstack安装
环境说明
主机类型 | IP | 要安装的应用 |
---|---|---|
控制机 cetnos8 | 192.168.136.131 | salt-master salt-minion |
被控机 centos8 | 192.168.136.132 | salt-minion |
去官方网站安装一个salt.repo的仓库 地址:Salt Project Package Repo