- salt-ssh介绍
- salt-ssh的特点
- salt-ssh远程管理的方式
- salt-ssh管理
- 通过使用用户名密码的SSH实现远程管理
- 通过salt-ssh初始化系统安装salt-minion
salt-ssh可以让我们不需要在受控机上安装salt-minion客户端也能够实现管理 *** 作。
salt-ssh的特点- 远程系统需要Python支持,除非使用-r选项发送原始ssh命令
- salt-ssh是一个软件包,需安装之后才能使用,命令本身也是salt-ssh
- salt-ssh不会取代标准的Salt通信系统,它只是提供了一个基于SSH的替代方案,不需要ZeroMQ和agent
注意:由于所有与Salt SSH的通信都是通过SSH执行的,因此它比使用ZeroMQ的标准Salt慢得多
salt-ssh远程管理的方式salt-ssh有两种方式实现远程管理,一种是在配置文件中记录所有客户端的信息,诸如 IP 地址、端口号、用户名、密码以及是否支持sudo等;另一种是使用密钥实现远程管理,不需要输入密码(免密登录)。
salt-ssh管理- 在master上安装salt-ssh
[root@master ~]# yum -y install salt-ssh通过使用用户名密码的SSH实现远程管理
- 修改配置文件,添加受控机信息
[root@master ~]# vim /etc/salt/roster ...... node1: host: 192.168.218.133 user: root passwd: 123456
- 如果受管主机数量过多,可以使用脚本修改配置文件
//受管主机IP信息 [root@master ~]# cat host.info 1 192.168.218.133 2 192.168.218.130 3 192.168.218.144 //执行脚本 [root@master ~]# cat test.sh #!/bin/bash while read line;do cat >> aaa <
- 测试连通性
//受控主机安装python3 [root@master ~]# salt-ssh -r 'node1' "yum -y install python3" vm1: ---------- retcode: 254 stderr: stdout: The host key needs to be accepted, to auto accept run salt-ssh with the -i flag: The authenticity of host '192.168.218.133 (192.168.69.202)' can't be established. ECDSA key fingerprint is SHA256:Nz8CAwwL3HRh/Lvqejqa+eiV3A09xGYYfG2A/W8wRPs. ECDSA key fingerprint is MD5:8c:b3:22:14:7a:8a:bc:34:f9:9d:3c:3a:07:8a:96:20. Are you sure you want to continue connecting (yes/no)?从上面的信息可以看出,第一次访问时需要输入 yes/no ,但是 saltstack 是不支持交互式 *** 作的,所以为了解决这个问题,我们需要对其进行设置,让系统不进行主机验证。
[root@master ~]# vim ~/.ssh/config StrictHostKeyChecking no [root@master ~]# salt-ssh '*' test.ping node1: True通过salt-ssh初始化系统安装salt-minion
- 安装源
[root@master ~]# cat /srv/salt/base/init/yum/main.sls {% if grains['os'] == 'RedHat' %} /etc/yum.repos.d/centos-{{ grains['osmajorrelease'] }}.repo: file.managed: - source: salt://init/yum/files/centos-{{ grains['osmajorrelease'] }}.repo - user: root - group: root - mode: '0644' {% endif %} /etc/yum.repos.d/epel-{{ grains['osmajorrelease'] }}.repo: file.managed: - source: salt://init/yum/files/epel-{{ grains['osmajorrelease'] }}.repo - user: root - group: root - mode: '0644' /etc/yum.repos.d/salt-{{ grains['osmajorrelease'] }}.repo: file.managed: - source: salt://init/yum/files/salt-{{ grains['osmajorrelease'] }}.repo - user: root - group: root - mode: '0644' //修改epel-dpdcheck的值 [root@master ~]# vim /srv/salt/base/init/yum/files/epel-8.repo ...... repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=1 gpgcheck=1 #1表示开启状态,0表示关闭状态 countme=1 #gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-8 //添加这行内容 //执行状态文件 [root@master ~]# salt-ssh 'node1' state.sls init.yum.main
- 安装salt-minion
[root@master salt-minion]# cat main.sls include: - init.yum.main salt-minion: pkg.installed /etc/salt/minion: file.managed: - source: salt://init/salt-minion/files/minion.j2 - user: root - group: root - mode: '0644' - template: jinja - require: - pkg: salt-minion salt-minion.service: service.running: - enable: true - reload: true - watch: - file: /etc/salt/minion //定义变量 [root@master ~]# vim /srv/salt/base/init/salt-minion/files/minion.j2 ...... master: {{ pillar['master_ip'] }} #定义成变量 ...... //在pillar定义变量 [root@master ~]# cat /srv/pillar/base/salt-minion.sls master_ip: 192.168.218.133 [root@master ~]# cat /srv/pillar/base/top.sls base: '*': - salt-minion //执行状态文件 [root@master ~]# salt-ssh 'node1' state.sls init.salt-minion.main //执行成功后salt-key-L查看 [root@master ~]# salt-key -L Accepted Keys: node node5 node6 Denied Keys: Unaccepted Keys: master node1 //新安装的node1 Rejected Keys:欢迎分享,转载请注明来源:内存溢出
评论列表(0条)