SaltStack之salt-ssh

2023-05-16

salt-ssh介绍

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

salt-ssh特点

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

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

salt-ssh远程管理的方式

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

salt-ssh管理

在 master 上安装 salt-ssh

[root@node01 ~]# yum -y install salt-ssh

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

修改配置文件,添加受控机信息
[root@node01 ~]# vim /etc/salt/roster
添加下面内容
vm1:
  host: 192.168.175.152  //写受控端的IP
  user: root
  passwd: 123456
重启
[root@node01 ~]# systemctl restart salt-master

测试连通性

[root@node01 ~]# salt '*' test.ping
node03:
    True

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

[root@node01 ~]# vim ~/.ssh/config
添加以下内容
StrictHostKeyChecking no
[root@node01 ~]# salt '*' test.ping
node03:
    True

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

[root@node01 ~]# cd /srv/salt/base
[root@node01 base]# tree
.
├── modules
│   ├── app
│   │   ├── files
│   │   │   ├── apache-tomcat-9.0.37.tar.gz
│   │   │   ├── tomcat.service
│   │   │   └── tomcat.sh
│   │   └── tomcat.sls
│   ├── common
│   │   └── init.sls
│   ├── database
│   │   ├── files
│   │   │   ├── mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
│   │   │   ├── mysql.service
│   │   │   └── mysql.sh
│   │   └── install.sls
│   ├── framework
│   │   ├── files
│   │   │   ├── httpd.conf
│   │   │   └── httpd-vhosts.conf
│   │   └── lamt.sls
│   ├── web
│   │   ├── apache
│   │   │   ├── files
│   │   │   │   ├── apr-1.7.0.tar.bz2
│   │   │   │   ├── apr-util-1.6.1.tar.bz2
│   │   │   │   ├── httpd-2.4.43.tar.bz2
│   │   │   │   └── install.sh
│   │   │   ├── httpd.service
│   │   │   └── httpd.sls
│   │   └── httpd.sls
│   └── yum
│       ├── files
│       │   ├── CentOS-7.repo
│       │   └── epel-7.repo
│       └── init.sls
└── top.sls

13 directories, 23 files
[root@node01 ~]# ls
anaconda-ks.cfg  salt-repo-latest-2.el7.noarch.rpm
root@node01 ~]# cd /srv/salt/base/
[root@node01 base]# mkdir salt
[root@node01 base]# cd
[root@node01 ~]# cp salt-repo-latest-2.el7.noarch.rpm /srv/salt/base/salt/
[root@node01 ~]# cd /srv/salt/base/salt/
[root@node01 salt]# ls
salt-repo-latest-2.el7.noarch.rpm
[root@node01 salt]# mkdir minion
[root@node01 salt]# ls
minion  salt-repo-latest-2.el7.noarch.rpm
[root@node01 salt]# vim minion.sls  //编写安装salt-minion的脚本
[root@node01 salt]# cat minion.sls
/root/salt-repo-latest-2.el7.noarch.rpm:
  file.managed:
    - source: salt://salt/salt-repo-latest-2.el7.noarch.rpm
    - user: root
    - group: root
    - mode: 0644
  cmd.run:
    - name: yum -y localinstall salt-repo-latest-2.el7.noarch.rpm

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

/etc/salt/minion:
   file.managed:
    - source: salt://salt/minion
    - user: root
    - group: root
    - mode: 0644
    - require:
      - pkg: salt-minion-install

salt-minion-service:
  service.running:
    - name: salt-minion
    - enable: True
    - watch:
      - file: /etc/salt/minion
[root@node01 salt]# salt-ssh '*' cmd.run 'systemctl restart salt-minion'
vm1:
[root@node01 salt]# salt '*' test.ping 
node03:
    True
[root@node01 salt]# salt '*' cmd.run 'rpm -qa| grep salt-minion'
node03:
    salt-minion-3000.3-1.el7.noarch
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SaltStack之salt-ssh 的相关文章

  • 在 Python 中使用 Paramiko 模块切换到 root 用户时出现“必须从终端运行”

    我正在尝试通过 Python 脚本自动执行任务 这个想法是以普通用户身份登录 然后发送su命令并切换到 root 帐户 我无法直接以 root 身份登录的原因是SSHD不允许 root 登录 这是我所拥有的 ip 192 168 105 8
  • 使用 Github for Windows 通过 SSH 处理自己的私有 Git

    现在 我正在使用 msysgit 来使用 SSH 来处理存储在 ec2 Amazon 云服务器上的我自己的私有存储库 到目前为止 我已经能够通过 Git Bash 成功连接到这些存储库 使用 ssh keygen 创建 ssh rsa 公钥
  • 调试神秘的git+ssh+proxy失败“bash:没有这样的文件或目录”的艰难方法

    我正在尝试通过 SOCKS5 代理克隆 github 存储库 在 ssh config I have Host github com github com ProxyCommand usr bin nc X 5 x 127 0 0 1 70
  • 如何在接收端打开没有 SSHD 的 shell?

    我有一台没有 SSHD 的机器 我想从远程机器 我可以完全控制 在这台机器上打开 bash shell 由于我的有限机器上有 SSH 因此我配置了反向代理 ssh R 19999 localhost 22 remoteuser remote
  • Visual Studio Code - 一个工作区中的多个远程 SSH 连接?

    我最近开始喜欢上 Visual Studio Code 和远程 SSH 扩展 它确实彻底改变了我的工作流程 然而 我发现自己保持多个窗口打开 并通过与不同服务器的不同连接 我刚刚发现您可以将不同的文件夹添加到同一工作区 但是当连接到远程服务
  • 流浪家园慢

    我有一个基于 Laravel Homestead 的 vagrant 服务器 用于在本地测试我的 Laravel 站点 大部分情况下它运行得很好 然而 最近 我遇到了问题 它会停止几分钟 典型 到几个小时 罕见 这种情况每 15 分钟左右就
  • 如何使用java与防火墙(路由器)建立ssh连接?

    由于某种原因 我需要连接到防火墙 基于Linux 并使用Java添加一些规则 用google搜索了一段时间后 我发现jsch是我最好的选择 但是当我 用它来执行命令 显示主机名 例如 返回错误 如果我 执行类似命令 ls l and who
  • 如何在 Python Paramiko 中配置 ssh StrictHostKeyChecking=no 的等效项

    我正在使用 Paramiko 通过 Python 脚本进行 sshing 我的ssh命令如下 ssh A o strictHostKeyChecking no
  • 如何访问 Google Cloud Platform Compute Engine VM 实例的 SSH 密钥?

    我通过 Google Cloud Web 控制台从 CentOS 6 x 映像创建了一个新实例 我在创建表单上看到一个空白 我可以在其中粘贴现有的 SSH 密钥 因为这是我的第一个实例 所以我还没有 我以为它会像 Amazon EC2 一样
  • 无法通过 SSH 连接到 EC2 实例

    因此 我从网上启动了我的实例 下载了密钥对并安装了它 大约一天的时间里一切都运行良好 然后我重新启动了计算机 但我无法再通过 SSH 连接到它 我尝试重新下载密钥对并重新安装它 但我不断收到 权限被拒绝 公钥 错误 这是详细的输出 我也尝试
  • Mac OS X 中 Bash 脚本中的 SFTP 命令

    我需要使用 SFTP 和 SSH 从 Mac 主机将文本文件传输到远程 PC freeSSH 这两个连接在本地网络中 那么有没有办法从 Bash 脚本内部运行 SFTP 命令 使用提供的用户名和密码 我已经尝试过一些脚本expect 但我没
  • 将密钥对添加到现有 EC2 实例

    我被给予AWS控制台访问正在运行 2 个实例的帐户 但我无法关闭 在生产中 但是 我想获得对这些实例的 SSH 访问权限 是否可以创建一个新的密钥对并将其应用到实例 以便我可以通过 SSH 访问 获取现有的pem当前无法选择创建实例所用的密
  • 无法使用 git 配置文件进行 ssh

    我知道它被问了很多次 但我无法得到我的问题的答案 我正在尝试使用配置文件 ssh 到系统 配置文件是 Host qa HostName 10 218 70 345 User user IdentityFile C Users bean ss
  • GoLang ssh:尽管将其设置为 nil,但仍出现“必须指定 HosKeyCallback”错误

    我正在尝试使用 GoLang 连接到远程服务器 在客户端配置中 除了用户和密码之外 我将 HostKeyCallback 设置为 nil 以便它接受每个主机 config ssh ClientConfig User user HostKey
  • 无法从 Sourcetree 拉取 Git 远程存储库

    我生成了 ssh 密钥并配置了我的 git 和 SourceTree 我可以 git pull 并从 Git bash 执行其他操作 注意 我在 bashrc 中添加了以下内容以使其正常工作 eval ssh agent ssh add 然
  • 使用 ChannelExec 的命令未执行 - Jsch

    我正在使用 Jsch 在服务器中创建一个文件并执行一些命令 对于文件创建 它工作正常 但是对于命令执行 则不然 它保持状态 1 仍在处理它 并永远保持该状态 这种情况发生在 shell 执行或我尝试成为 root 时 请按照以下方法操作 p
  • 如何用python脚本控制TP LINK路由器

    我想知道是否有一个工具可以让我连接到路由器并关闭它 然后从 python 脚本重新启动它 我知道如果我写 import os os system ssh l root 192 168 2 1 我可以通过 python 连接到我的路由器 但是
  • 自定义 SSH 端口上的 Git

    我的 VPS 提供商建议我将 SSH 端口保留为他们默认分配的自定义端口号 不是 22 问题是 虽然我知道我可以在创建远程配置时提供端口号 但在进行 Git 克隆时似乎无法提供相同的操作 我在用gitolite https wiki arc
  • 尝试克隆一个 git 存储库,但它卡在克隆到中

    我使用的是 Windows 10版本 10 0 19042 内部版本 19042 GIT Ver 2 32当尝试使用 git bash 执行以下命令时git clone depth 1 b carla https github com Ca
  • PHP Github Pull 脚本错误“权限被拒绝(公钥)”

    我已经设置了一个 PHP 脚本来执行 GitHub 拉取 这包含在我的 Github 文件夹中 home mysite public html github github pull php 我的服务器已经有 SSH 公钥 就像我执行git

随机推荐

  • linux上 防火墙查看,添加,关闭,开放端口等命令

    1 查看防火墙状态如下 xff1a 查看防火墙状态 systemctl status firewalld 开启防火墙 systemctl start firewalld 关闭防火墙 systemctl stop firewalld 开启防火
  • 使用Python自动给视频逐帧截图

    背景 数据集采集不单有图片格式 xff0c 也有视频格式 xff0c 有时我们需要根据采集来的视频生成图片 xff0c 再进行标注 所以这里我们使用Python自动给视频逐帧截图 注意 xff1a 由于摄像机录制的视频大多是XMF格式 xf
  • FTP文件服务器部署

    以下步骤以在Ubuntu系统中部署为例 1 安装vsftpd软件 在Linux系统中 xff0c 可以使用包管理器来安装vsftpd软件 sudo apt get install vsftpd 2 配置vsftpd软件 安装完vsftpd软
  • python扫描端口

    什么是端口扫描 定义 xff1a 对一段端口或指定的端口进行扫描 目的 xff1a 通过扫描结果可以知道一台计算机上都提供了哪些服务 xff0c 然后就可以通过所提供的这些服务的己知漏洞就可进行攻击 原理 xff1a 当一个主机向远端一个服
  • SWT/ANR问题-- OTA 升级 从Android P 到 Q 发生 watchdog

    问题描述 通过OTA从Android P升级到Android Q后 手机会出现反复重启 Logcat logs 06 10 12 38 58 496 4369 4369 I SystemServer StartUsageService 06
  • Webpack中使用ProvidePlugin插件全局引入jquery报错

    报错提示 xff1a error 39 39 is not defined no undef webpack config js设置 xff1a new Webpack ProvidePlugin 39 jquery 39 jQuery 3
  • Java 异常处理

    Java是一种面向对象的编程语言 xff0c Java程序在运行时可能会发生各种异常 xff0c 如空指针异常 文件读取异常 算术异常等 在Java中 xff0c 异常是指程序运行时可能会发生的错误 xff0c 例如输入不正确 内存不足等等
  • smb连接错误: 连接到服务器时出现问题。请检查服务器名称或IP地址,然后再试一次。如果问题持续发生,请联系系统管理员

    大家在用Ipad或者Iphone连接电脑的共享文件夹时如果出现 连接到服务器时出现问题 请检查服务器名称或IP地址 xff0c 然后再试一次 如果问题持续发生 xff0c 请联系系统管理员 解决办法 xff1a 关闭公用网络防火墙 Ps 如
  • Linux部署lamp(centos 7),照做就行

    大家好 xff0c 今天我们来分享一下Linux上部署lamp lamp指的是Linux 43 Apache 43 MySQL数据库 43 php几者相结合的web框架结构 虽然我在这之前 xff0c 就写过有关于这方面的博客 xff0c
  • C++ volatile关键字说明

    内容摘抄自https www jb51 net article 85852 htm xff0c 感谢原作者分享 volatile原意是 易变的 xff0c 但这种解释简直有点误导人 xff0c 应该解释为 直接存取原始内存地址 比较合适 易
  • Ubuntu安装VMware Tools工具

    1 启动VMware Workstation软件 xff0c 运行Ubuntu系统 xff0c 菜单栏 xff1a 虚拟机 gt 安装VMware Tools xff08 注 xff1a 不运行Ubuntu系统 xff0c 无法点击 安装V
  • mac安装报错Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules‘

    mac上使用npm安装报错Error EACCES permission denied access 39 usr local lib node modules 39 错误描述解决方案 错误描述 今天在mac上安装vue cli时报错 xf
  • 前端打印时背景图片失效

    前端打印时背景图片失效 xff08 已解决 xff09 一 问题描述二 解决方案总结 一 问题描述 今天在开发时使用了input type 61 checkbox 和 input type 61 34 radio 34 这两个标签 xff0
  • mac下查看本机IP地址

    mac下查看本机IP地址 方法一 xff1a ifconfig方法二 xff1a ifconfig grep 34 inet 34 方法一 xff1a ifconfig 首先打开终端 然后输入 ifconfig 方法二 xff1a ifco
  • Python读取gzip文件

    首先安装gzip包 xff0c 如下 xff1a pip install gzip 读取gzip文件 xff1a import gzip 导入gzip包 with gzip open 39 xxx gz 39 39 rb 39 as fil
  • SSM框架--Spring配置文件

    Spring配置文件 1 Bean标签的基本配置 用于配置对象交由Spring来创建 默认情况下它调动的是类中的无参构造函数 xff0c 如果没有无参构造函数则不能创建成功 基本属性 xff1a id xff1a 作用是唯一标识 xff0c
  • docker: Error: No such image: mysql

    今天操作docker的时候 xff0c docker提示 于是我又试了试 docker pull mysql 安装完毕之后还是一样的问题 xff0c 想着卸载镜像 xff0c 输入了 docker rmi mysql 于是我清空了docke
  • selenium自动化测试

    目录 第一节 xff1a selenium概述 第二节 xff1a 在PyCharm中使用selenium 第三节 xff1a 使用selenium自动控制浏览器 第四节 xff1a selenium在大数据的使用 第一节 xff1a se
  • 数据库二进制安装以及数据库破解密码

    数据库二进制安装 实验步骤一 xff1a 把需要的数据库包传到主机 实验步骤二 xff1a 安装依赖包 实验步骤三 xff1a 创建mysql用户并且验证 实验步骤四 xff1a 解压mysql软件包并且做软链接 实验步骤五 xff1a 修
  • SaltStack之salt-ssh

    salt ssh介绍 salt ssh可以让我们不需要在受控机上安装salt minion客户端也能够实现管理操作 salt ssh特点 1 远程系统需要Python支持 xff0c 除非使用 r选项发送原始ssh命令 2 salt ssh