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服务
(2)在server1上安装 salt-ssh
(3)配置roster文件,默认的本地路径是 /etc/salt/roster
进行ssh配置,写入server2主机的信息
(3)测试:
saltstcak可以使用ssh模块来远程控制没有安装minion的主机
第一次运行salt-ssh 时,需要在 Rosters 中配置用户的密码
当部署过 Key 之后,再执行salt-ssh 就会通过**认证,不需要用户再输入密码
询问密码加 -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用来做集群部署的
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)的配置文件
关闭数据库
(2)重启服务,进行测试
(3)server4作为top master主机安装master
(5)编辑配置文件,开启顶级master的选项,重启服务,查看端口,top master开启4505和4506端口
(6)在server1上安装syndic,修改配置,在syndic_master指向top master,
重启salt-master服务,开启salt-syndic
(7)在top master上进行测试
当在top master上去发送执行命令,先去下发给下级的master后,下级master让其所管理的minion去执行命令
5.salt-api简介
SaltStack 官方提供有REST API格式的 salt-api 项目,将使Salt与第三方系统集成变得尤为简单。
利用api接口来实现SaltStack推送,管理集群是非常方便的手段。
官方提供了三种api模块:
rest_cherrypy
rest_tornado
rest_wsgi
6.实验
(1)在master节点安装salt-api
(2)生成**文件
(3)利用**生成自签名CA证书
(4)配置证书,在master.d 目录下,创建的文件后缀必须是.conf
(5)在salt-master配置文件里添加验证,在master.d 目录下创建新文件:认证文件
(6)创建用户并且设置密码
(7)重启salt-master并启动salt-api
(8)查看salt-api监听端口,8000端口开启,用来作为远程访问端口
(9)login登陆,获取token字符串
(10)通过api执行test.ping测试连通性,获取到token后就可以使用它直接去连接api执行推送任务