SaltStack--采取salt-ssh

原创
小哥 3年前 (2022-11-02) 阅读数 8 #大杂烩

SaltStack--使用salt-ssh

SaltStack使用salt-ssh模式 #

salt-ssh 介绍 #

参考官档

salt-ssh0.17.0 一种新引入的功能,不需要minion还可以管理客户端,而不需要 mastersalt-ssh 也支持 salt 大多数功能:如 grains , modules , state 等; salt-ssh 没有使用 ZeroMQ 通信架构,执行方式为串口方式。

salt-ssh执行原理 #

  • salt-ssh 是在 salt 在玩游戏的基础上 python 程序包将上载到客户端的默认设置 tmp 目录下, 在客户端上方解压并执行返回结果,最后删除 tmp 已上载临时文件。
  • salt-minion 方法是 salt-mater 首先执行语法验证,然后传递验证并将其发送到 minionminion 收到 Msater 默认情况下保存状态文件。 /var/cache/salt/minion
  • salt-sshsalt-minion 可以共存, salt-minion 不依赖于 ssh 服务

安装配置 #

1)安装 salt-ssh

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

2)修改 roster 文件,配置需要管理的计算机

[root@salt-master ~]# vim /etc/salt/roster salt-minion01: host: 192.168.1.31 user: root passwd: 123456 port: 22

salt-minion02: host: 192.168.1.32 user: root passwd: 123456 port: 22

3)管理测试 (如果第一次需要输入,则返回Description。 yes或no 进行 ssh 认证,可以添加 -i 自动参数验证)

[root@salt-master ~]# salt-ssh * test.ping -i salt-minion01: True salt-minion02: True

4) salt-ssh 命令参数

-r, –raw, –raw-shell # 直接使用shell命令 –priv #指定SSH私钥文件 –roster #定义要使用的roster系统,如果您定义后端数据库、扫描方法或用户定义。roster系统,缺省值为/etc/salt/roster文件 –roster-file #指定roster文件 –refresh, –refresh-cache #刷新cache,如果target的grains更改自动刷新 –max-procs #指定缺省值的进程数25 -i, –ignore-host-keys #当ssh连接时,请忽略keys –passwd #指定默认密码 –key-deploy #配置keys 为所有用户设置此参数minions用来部署ssh-key认证, 本提法及-passwd组合使用将使初始化部署变得快捷方便。当呼叫时master模块,并添加参数。 –key-deploy 即可在minions生成keys,下次不要使用密码

5) salt-ssh 执行命令

[root@salt-master ~]# salt-ssh * -r "uptime" salt-minion01:

retcode:
    0
stderr:
stdout:
    root@192.168.1.31s password: 
     10:06:08 up 1 day, 17:05,  2 users,  load average: 0.00, 0.01, 0.05

salt-minion02:

retcode:
    0
stderr:
stdout:
    root@192.168.1.32s password: 
     10:06:08 up 1 day, 17:16,  2 users,  load average: 0.03, 0.06, 0.06

6) salt-ssh 执行状态模块

[root@salt-master ~]# salt-ssh * state.sls modules.haproxy.service saltenv=prod salt-minion02:

      ID: haproxy-install
Function: pkg.installed
    Name: haproxy
  Result: True
 Comment: All specified packages are already installed
 Started: 10:09:48.541019
Duration: 10161.705 ms
 Changes:   

      ID: haproxy-config
Function: file.managed
    Name: /etc/haproxy/haproxy.cfg
  Result: True
 Comment: File /etc/haproxy/haproxy.cfg is in the correct state
 Started: 10:09:59.020659
Duration: 54.263 ms
 Changes:   

      ID: haproxy-service
Function: service.running
    Name: haproxy
  Result: True
 Comment: The service haproxy is already running
 Started: 10:09:59.079110
Duration: 128.052 ms
 Changes:   

Summary for salt-minion02

Succeeded: 3 Failed: 0

Total states run: 3 Total run time: 10.344 s salt-minion01:

      ID: haproxy-install
Function: pkg.installed
    Name: haproxy
  Result: True
 Comment: All specified packages are already installed
 Started: 10:10:00.561015
Duration: 2862.018 ms
 Changes:   

      ID: haproxy-config
Function: file.managed
    Name: /etc/haproxy/haproxy.cfg
  Result: True
 Comment: File /etc/haproxy/haproxy.cfg is in the correct state
 Started: 10:10:03.905713
Duration: 220.443 ms
 Changes:   

      ID: haproxy-service
Function: service.running
    Name: haproxy
  Result: True
 Comment: The service haproxy is already running
 Started: 10:10:04.135607
Duration: 230.231 ms
 Changes:   

Summary for salt-minion01

Succeeded: 3 Failed: 0

Total states run: 3 Total run time: 3.313 s

Roster说明 #

salt-ssh 需要一个清单系统来确定哪些实施目标, Salt0.17.0 版本中 salt-ssh 引入 roste r系统
roster 该系统被编译成包含以下内容的数据结构 targets ,这些 targets 是目标系统主机和/或连接到这些主机的列表。 targets

配置文件描述:

target的信息

host:        # 远程主机的ip地址或者dns域名
user:        # 已登录的用户
passwd:      # 用户密码,如果不使用此选项,则默认情况下使用密钥方法。

可选部件

port:        #ssh端口
sudo:        #可以通过sudo
tty:         # 如果已设置sudo,设置此参数true
priv:        # ssh密钥的文件路径。
timeout:     # 建立链接时等待响应时间的秒数
minion\_opts: # minion位置路径
thin\_dir:    # target系统的存储目录,默认为/tmp/salt-
cmd\_umask:   # 使用salt-call命令的umask值
版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除