javaee论坛

普通会员

225648

帖子

345

回复

359

积分

楼主
发表于 2019-10-30 18:21:34 | 查看: 341 | 回复: 0

在之前我们一直围绕着需要在受控端安装Minion的前提下进行架构扩展那么如果在实际的环境中,由于某些限制无法在受控端服务器安装Minion客户端,该怎么办呢?Salt在版本0.17.0当中,引入了新的传输系统,它支持通过SSH通道来实现Salt的通信通过这种方式,我们可以直接通过SSH通道在远程主机上执行使用SaltStack而不需要在远程主机上运行SaltMinion,同时又能支持SaltStack的大部分功能,而且SaltMaster也不需要运行了这样,也就实现了免客户端方式的部署和实施但是由于无客户端本身的局限性SaltSSH并不能完全取代标准的Salt通信方式,只是简单地提供了一个基于SSH通道的可选方式这种方式不需要ZeroMQ和远程Agent的支持;整体的工作流程和基于客户端架构大致相同但必须意识到,通过SaltSSH的执行速度会远远低于ZeroMQ支持的标准的Salt通信方式因为在实际的生产环境当中,如果只有个别主机不能安装minion,没有必要再部署ansible,这样saltstack和ansible就重叠了这个时候就可以使用saltstack的ssh了

2.具体的实现过程如下

(1)关闭server2上面的minion服务(2)在server1上安装salt-ssh传统的Master和Minion的架构中,Minion会主动连接Master,所以Master不需要手工配置目标系统的信息。但是使用SaltSSH,控制服务器就需要这些。SaltStack使用Rosters来管理这些数据。Roster系统为可插拔设计,可以非常方便地加入到已有的系统中,用于SaltSSH获取需要连接的服务器信息默认情况下Roster文件本地路径为:/etc/salt/rosterRoster系统编译了一个内部数据结构,称为TargetsTargets是一个目标系统和关于如何连接到系统属性的列表对于一个在Salt中的Roster模块来说,唯一要求是返回Targets数据结构(3)进行ssh配置写入server2主机的信息(4)测试:saltstcak可以使用ssh模块来远程控制没有安装minion的主机第一次运行SaltSSH会提示进行salt-sshkey的部署,需要在Rosters中配置用户的密码,即可进行Key的部署当部署过Key之后,后期再执行SaltSSH就会通过密钥认证,不需要用户再输入密码了(5)为了接下来的实验,我们再将minion开启总结一下在实际的生产使用中,建议将传统的Master、Minion和salt-ssh一起使用比如我们可以使用salt-ssh来进行SaltMinion的升级,可以使用salt-minion来实现salt-ssh的自动化部署等这里我们来介绍如何基于现有的Master、Minion架构自动构建SaltSSH环境经过上面对SaltSSH的介绍,相信大家已经知道要实现SaltSSH架构需要两个重要的步骤(1)生成Rosters配置文件。(2)把密钥放置到SaltMinion上。

针对这两个需求,我们可以使用下面的方法进行实现。使用salt-mine实现SaltRosters文件的自动生成。使用Salt的文件状态模块管理Minion上的authorized_keys。本质是将ssh-key(注:第一次执行salt-ssh添加主机时会生成,默认存放在/etc/salt/pki/master/ssh/salt-ssh.rsa.pub的公钥)写入到用户主目录.ssh/authorized_keys文件中。

您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017