SaltStack之salt-ssh


1. salt-ssh介绍

salt-ssh可以让我们不需要在受控机上安装salt-minion客户端也能够实现管理操作。


1.1 salt-ssh的特点

  • 远程系统需要Python支持,除非使用-r选项发送原始ssh命令
  • salt-ssh是一个软件包,需安装之后才能使用,命令本身也是salt-ssh
  • salt-ssh不会取代标准的Salt通信系统,它只是提供了一个基于SSH的替代方案,不需要ZeroMQ和agent

请注意,由于所有与Salt SSH的通信都是通过SSH执行的,因此它比使用ZeroMQ的标准Salt慢得多



1.2 salt-ssh远程管理的方式

salt-ssh有两种方式实现远程管理,一种是在配置文件中记录所有客户端的信息,诸如 IP 地址、端口号、用户名、密码以及是否支持sudo等;另一种是使用**实现远程管理,不需要输入密码。



2. salt-ssh管理


在 master 上安装 salt-ssh

[[email protected] ~]# yum -y install salt-ssh


2.1 通过使用用户名密码的SSH实现远程管理

修改配置文件,添加受控机信息

[[email protected] ~]# vim /etc/salt/roster
192.168.30.150:
  host: 192.168.30.150
  user: root
  passwd: 1



测试连通性

[[email protected] ~]# salt-ssh '192.168.30.150' test.ping
192.168.30.150:
    ----------
    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.30.150 (192.168.30.150)' can't be established.
        ECDSA key fingerprint is SHA256:bGJka92FBGDxlsCxrm6FWR/nryT8gK/uWC/jwUe37Uw.
        ECDSA key fingerprint is MD5:46:4e:e1:0e:e5:0e:b4:8f:b3:a8:cd:5d:7d:5b:22:2f.
        Are you sure you want to continue connecting (yes/no)? 

从上面的信息可以看出,第一次访问时需要输入 yes/no ,但是 saltstack 是不支持交互式操作的,所以为了解决这个问题,我们需要对其进行设置,让系统不进行主机验证。


[[email protected] ~]# vim ~/.ssh/config
StrictHostKeyChecking no



[[email protected] ~]# salt-ssh '*' test.ping
192.168.30.150:
    True



2.2 通过salt-ssh初始化系统安装salt-minion


安装 salt-ssh

[[email protected] ~]# yum -y install salt-ssh



修改roster配置文件,添加受控主机

[[email protected] ~]# vim /etc/salt/roster
192.168.30.150:
  host: 192.168.30.150
  user: root
  passwd: 1



测试连通性

[[email protected] ~]# salt-ssh '*' test.ping
192.168.30.150:
    True



执行状态命令,初始化系统,安装salt-minion

[[email protected] ~]# tree /srv/salt/base/minion/

/srv/salt/base/minion/            ##创建minion目录
├── files             ##装文件的目录
│   ├── minion                             ##minion的配置文件,将IP改为masterIP
│   └── salt-repo-latest-2.el7.noarch.rpm        ##salt源
└── minion_install.sls  

[[email protected] ~]# vim /srv/salt/base/minion/minion_install.sls

/tmp/salt-repo-latest-2.el7.noarch.rpm:
  file.managed:
    - source: salt://minion/files/salt-repo-latest-2.el7.noarch.rpm
    - user: root
    - group: root
    - mode: 0644
  cmd.run:
    - name: yum -y install /tmp/salt-repo-latest-2.el7.noarch.rpm


minion_install:
  pkg.installed:
    - name: salt-minion



/etc/salt/minion:
  file.managed:
    - source: salt://minion/files/minion
    - user: root
    - group: root
    - mode: 0644


salt-minion:
  service.running:
    - name: salt-minion
    - enable: True
    - watch:
      - file: /etc/salt/minion


[[email protected] ~]# salt-ssh '*' state.sls minion.minion_install

在这里插入图片描述

//接收key
[[email protected] ~]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
192.168.30.150
Rejected Keys:



[[email protected] ~]# salt-key -a 192.168.30.150
The following keys are going to be accepted:
Unaccepted Keys:
192.168.30.150
Proceed? [n/Y] y
Key for minion 192.168.30.150 accepted.
Key for minion 192.168.30.150 accepted.



[[email protected] ~]# salt-key -L
Accepted Keys:
192.168.30.150
Denied Keys:
Unaccepted Keys:
Rejected Keys:




//使用minion方式控制
[[email protected] ~]# salt '*' test.ping
192.168.30.150:
    True
    
版权声明:本文为zyy130988原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zyy130988/article/details/108181543

智能推荐

说说 Python Django 应用的基础目录结构

通过以下 django-admin 指令创建应用之后,就会生成应用的基础目录结构。 比如,我们建立了一个叫 ‘first’ 的应用,它的目录结构是这样的: 目录或文件 说明 最外层的 first/ 这是新应用的根目录,所有与该应用相关的内容都放在这里。 manage.py 用于管理 Django 项目的命令行工具。 里面一层的 first/ 目录 是一个...

Springboot整合rabbitMQ

依赖: 配置文件application.yml RabbitConfig 消息生产者RabbitProducer 消息消费者RabbitCustomer 通过Controller进行调用 启动项目后调用接口: 结果:...

Thread.join()方法的使用

如果一个线程A执行了thread.join()语句,代表当前线程A等待thread线程终止后才从thread.join()方法返回 并且这个方法具有超时特性,可以添加参数设置 输出结果: jdk中Thread.join()方法的源码(进行了部门调整)   每个线程终止的条件是前驱线程的终止,每个线程等待前驱线程终止后,才从join()方法返回,  当线程终止时,会调用自身的no...

linux服务器部署jenkins笔记

安装jenkins参考文档:https://blog.csdn.net/tomatocc/article/details/83930714 1. 打开jenkins官网:https://jenkins.io/download/ 将war包下载到本地 **ps:**这里要注意的是要下载左边下方的war包,不要下载右边下面的war包。左边是稳定版本,右边是最新版本,建议大家使用稳定版本(我刚开始下载的...

k8s部署elasticsearch集群

百度营销大学     环境准备 我们使用的k8s和ceph环境见: https://blog.51cto.com/leejia/2495558 https://blog.51cto.com/leejia/2499684 ECK简介 Elastic Cloud on Kubernetes,这是一款基于 Kubernetes Operator 模式的新型编排产品,用户可使用该产品在...

猜你喜欢

saas-export项目-AdminLTE介绍与入门

AdminLTE介绍 (1)AdminLTE是什么? AdminLTE是一款建立在bootstrap和jquery之上的开源的模板主题工具 (2)AdminLTE有什么特点? 提供一系列响应的、可重复使用的组件, 并内置了多个模板页面 自适应多种屏幕分辨率,兼容PC和移动端 快速的创建一个响应式的Html5网站 AdminLTE 不但美观, 而且可以免去写很大CSS与JS的工作量 AdminLTE...

MyBatis中ResultMap结果集映射

用于解决属性名和字段名不一致的情况: resultMap 元素是 MyBatis 中最重要最强大的元素。...

编写一个shell

编写shell的过程: 1.从标准输入中读入一个字符串。 2.解析字符串 3.创建一个子进程的执行程序。 4.子进程程序替换。 5.父进程等待子进程退出。...

WEB自动化测试中Xpath定位方法

前言: Xpath是在XML文档中查找信息的一种语言,使用路径表达式来选取XML文档中的节点或节点集,由于XML与HTML结构类似(前者用于传输数据,后者用于显示数据),所以Xpath也常用于查找HTML文档中的节点或节点集。 一  路径表达式: 路径以“/”开始     表示找到满足该绝对路径的元素; 路径以//”开始  ...

力扣困难难度 第4题 寻找两个正序数组的中位数

先看一眼题 我的思路: 设置下标i,j分别用于遍历两个数组,初始值均为0,直到找到两个数组中从小到大的第第length/2个数为止结束循环,length为两个数组长度之和。 ·每次比较nums[i]nums[j],如果前者小则i++,否则j++ ·循环结束时,如果count已经达到length/2,则说明已经找到了中位数,[注意:此时有可能正好其中一个数组遍历完了!所以...