写在前面:
与ansible相比 ,都是python写的,但是它更快 ,python使用ssh进行管理客户端,ssh本身就是有开销的,而saltstack使用轻量级的ZeroMQ进行通信,处理速度更快;同样缺点也很明显, “需要安装客户端”。
其实salt 也提供了salt-ssh 用来避开“安装客户端”,但是这样又回到那个问题“速度会慢”,试想下几千上万台服务器时,如果做一个批量配置,每台服务器ssh连过去,虽然是salt 自动连接,也是件不怎么愉快的事情。
学习slat 不能仅仅把它当作一个“批量处理工具”,而是要把它当作一个“配置管理工具”对待。这篇文章是很久之前写的“slat 学习笔记”,今天发出来,回顾下学习历程。
第一章 SaltStack 的基本功能
- 远程执行
- 多台机器上,同时执行一条命令
- 配置管理
- 服务器配管理
- 安装,配置,启动
- 代码的配置管理
- 状态管理(哪些服务是否允许,文件,,,服务器的状态)
- 例如:创建目录,目录已存在则创建失败,目录存在则是一种状态
- 服务器配管理
- 云管理
- 管理云(openstack,AWS,阿里云等),一条命令创建一台虚拟机
- 事件驱动
- 就是故障自愈,通过事件的概念去触发一些自动处理。
- 例如:8080 端口停了,这是一个事件。这个会发送到salt的事件总线,然后触发修复,比如 “重启Tomcat”
- slat能够自动化的捕捉事件,针对事件预定好规则,然后去触发这个规则。
第二章 salt的三种运行方式
2.1 Local 本地运行
2.2 Master/Minion
2.3 salt ssh
第三章 Salt server-client 模式部署
3.1 Salt 安装
1.安装salt 官方源
cat > /etc/yum.repos.d/saltstack.repo << EOF
[saltstack]
name=SaltStack repo for RHEL/CentOS \$releasever
baseurl=https://repo.saltstack.com/yum/redhat/\$releasever/\$basearch/latest
enabled=1
gpgcheck=1
gpgkey=https://repo.saltstack.com/yum/redhat/\$releasever/\$basearch/latest/SALTSTACK-GPG-KEY.pub
EOF
2. 服务端节点上安装 master ,控制节点安装minion
yum install -y salt-master
yum install -y salt-minion
#启动master
systemctl start salt-master.service
#salt 安装目录
#启动minion
systemctl start salt-minion.service
3.2 Salt 目录结构介绍
3.3 Salt 认证流程
salt: salt命令
‘*’: 表示对所有minion
这里*表示所有minion,单引号只是转义,也可以使用其他转义字符
注意:
需要注意的是这里的*或id的作用其实是所有minion都会收到消息,只有指定的Minion才会执行并返回消息。
例如:
salt ‘web01’ test.ping
所有的minion都会收到test.ping,但是只有web01才会返回结果。
原因:
这里涉及到目标选择,如果只是向指定的id发送消息的话 目标的选择需要在Master端进行,但是Master端的目标信息有限(比如要将消息发送给OS Centos7的minion),Master端并没有记录哪个ID的OS是Centos7,
salt的目标选择条件还可以是动态的条件(比如哪个ID的key值符合,则执行)。
虽然向所有的minion发送消息会占用一部分的资源,但是这样却可以对目标进行精确的选择。
test.ping:相当于test模块的ping方法,不是那种传统意义上的 ICMP ping
也可以直接指定一个id
test.ping 和ping 不同
ping命令是通过ICMP协议进行检测,而test.ping 则是master向minion发送消息,minion收到后返回一个True。
3.4 Salt-- Masetr 于 Minion 的通信
3.5 Salt 远程执行
3.5.1 远程执行模块 cmd.run
cmd.run 是命令执行模块
Master向所有的Minion发送消息,Minion收到消息判断自己的 id 是否是web01 如果是则执行‘w’ 并返回结果。
https://www.hugbg.com/archives/1339.html
2019-10-22 2:45 下午 1F
与其想着怎么美丽地牺牲,倒不如想着怎么漂亮地活到最后一刻。 —《银魂》