SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置

1.salt-ssh简介

salt-ssh可以独立运行的,不需要minion端。
salt-ssh 用的是sshpass进行密码交互的。
以串行模式工作,性能下降。

在之前我们一直围绕着需要在受控端安装 Minion 的前提下进行架构扩展
那么如果在实际的环境中,由于某些限制无法在受控端服务器安装 Minion 客户端,该怎么办呢?
Salt 在版本 0.17.0 当中,引入了新的传输系统,它支持通过 SSH 通道来实现 Salt 的通信
通过这种方式,我们可以直接通过 SSH 通道在远程主机上执行使用 SaltStack,而不需要在远程主机上运行 Salt Minion ,同时又能支持 SaltStack 的大部分功能,而且 Salt Master 也不需要运行了。这样,也就实现了免客户端方式的部署和实施

2.实验

(1)关闭server2上面的minion服务
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第1张图片
(2)在server1上安装 salt-ssh
在这里插入图片描述
(3)配置roster文件,默认的本地路径是 /etc/salt/roster
进行ssh配置,写入server2主机的信息
在这里插入图片描述
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第2张图片
(3)测试:
saltstcak可以使用ssh模块来远程控制没有安装minion的主机
第一次运行salt-ssh 时,需要在 Rosters 中配置用户的密码
当部署过 Key 之后,再执行salt-ssh 就会通过密钥认证,不需要用户再输入密码
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第3张图片
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第4张图片
询问密码加 -i
在这里插入图片描述
注意:实现 Salt SSH 架构需要两个重要的步骤
生成 Rosters 配置文件
把密钥放置到 Salt Minion 上

3.salt-syndic简介

syndic其实就是个代理,隔离master与minion。
Syndic必须要运行在master上,再连接到另一个topmaster上。
Topmaster 下发的状态需要通过syndic来传递给下级master,minion传递给master的数据也是由syndic传递给topmaster。
topmaster并不知道有多少个minion。
syndic与topmaster的file_roots和pillar_roots的目录要保持一致。

syndic是saltstack用来做集群部署的
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第5张图片

4.实现大规模的集群管理(topmaster+(syndic+master)+minion1+minion2)

实验环境:
server14(172.25.12.4)作top-master节点
server1(172.25.12.1)作salt-master节点
server2(172.25.12.2)作salt-minion节点
server3(172.25.12.3)作salt-minion节点
实验
(1)编辑原来master节点(server1)的配置文件
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第6张图片
关闭数据库
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第7张图片
(2)重启服务,进行测试
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第8张图片
(3)server4作为top master主机安装master
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第9张图片
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第10张图片
(5)编辑配置文件,开启顶级master的选项,重启服务,查看端口,top master开启4505和4506端口SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第11张图片SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第12张图片
(6)在server1上安装syndic,修改配置,在syndic_master指向top master,
重启salt-master服务,开启salt-syndic
在这里插入图片描述
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第13张图片
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第14张图片
(7)在top master上进行测试
当在top master上去发送执行命令,先去下发给下级的master后,下级master让其所管理的minion去执行命令
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第15张图片
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第16张图片
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第17张图片

5.salt-api简介

SaltStack 官方提供有REST API格式的 salt-api 项目,将使Salt与第三方系统集成变得尤为简单。
利用api接口来实现SaltStack推送,管理集群是非常方便的手段。
官方提供了三种api模块:
rest_cherrypy
rest_tornado
rest_wsgi

6.实验

(1)在master节点安装salt-api
在这里插入图片描述
(2)生成密钥文件
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第18张图片
(3)利用密钥生成自签名CA证书
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第19张图片
(4)配置证书,在master.d 目录下,创建的文件后缀必须是.conf
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第20张图片
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第21张图片
在这里插入图片描述
(5)在salt-master配置文件里添加验证,在master.d 目录下创建新文件:认证文件
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第22张图片
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第23张图片
(6)创建用户并且设置密码
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第24张图片
(7)重启salt-master并启动salt-api
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第25张图片
(8)查看salt-api监听端口,8000端口开启,用来作为远程访问端口
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第26张图片
(9)login登陆,获取token字符串
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第27张图片
(10)通过api执行test.ping测试连通性,获取到token后就可以使用它直接去连接api执行推送任务
SaltStack自动化运维——salt-ssh、salt-syndic与salt-api配置_第28张图片

你可能感兴趣的:(linux,saltstack)