salt-ssh介绍及使用方法

在ssh上执行salt命令和状态而不安装salt-minion,类似于ansible。

1. salt-ssh的安装:

[root@linux-node1 ~]# yum install salt-ssh -y
[root@linux-node1 ~]# rpm -qa salt-ssh
salt-ssh-2018.3.-.el7.noarch

2. Roster的使用:

Roster 系统为可插拔设计,可以非常方便地加入到已有的系统中,用于 Salt SSH 获取需要连接的服务器信息。默认情况下 Roster 文件本地路径为:/etc/salt/roster。

Roster 系统编译了一个内部数据结构,称为 Targets。Targets 是一个目标系统和关于如何连接到系统属性的列表。对于一个在 Salt 中的 Roster 模块来说,唯一要求是返回 Targets 数据结构:

<SaltID>:     # 目标 ID
host: # 远程主机的 IP 地址或者主机名
user: # 可以登录的用户
passwd: # 可以登录用户的密码
# 可选参数
port: # SSH 端口
sudo: # 是否运行 sudo,设置 True 或者 False
priv: # SSH 私钥的路径,默认是 salt-ssh.rsa
timeout: # 连接 SSH 时的超时时间
thin_dir: # 目标系统 Salt 的存储路径,默认是 /tmp/salt-<hash>

3. 修改roster配置文件,添加测试主机:

[root@linux-node1 ~]# vim /etc/salt/roster
linux-node2:
host: 192.168.25.92
user: root
passwd:
port:
linux-node3:
host: 192.168.25.93
user: root
passwd:
port:

4. 使用salt-ssh远程执行命令:

[root@linux-node1 ~]# salt-ssh '*' test.ping
linux-node2:
True
linux-node3:
True
[root@linux-node1 ~]# salt-ssh '*' -r 'free -m'
linux-node3:
----------
retcode: stderr:
stdout:
root@192.168.25.93's password:
total used free shared buff/cache available
Mem:
Swap:
linux-node2:
----------
retcode: stderr:
stdout:
total used free shared buff/cache available
Mem:
Swap:

如果上面没有在roster中配置passwd,则第一次运行 Salt SSH 会提示进行 salt-ssh key 的部署,需要在 Rosters 中配置用户的密码,即可进行 Key 的部署,初始化代码如下:

[root@linux-node1 ~]# salt-ssh 'linux-node2' -r 'free -m'
Permission denied for host linux-node2, do you want to deploy the salt-ssh key? (password required):
[Y/n] Y
Password for root@linux-node2:
linux-node2:
----------
retcode: stderr:
stdout:
total used free shared buff/cache available
Mem:
Swap:

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

[root@linux-node1 ~]# cat /srv/salt/base/init/minion.sls
salt-minion-install:
pkg.installed:
- name: salt-minion salt-minion-conf:
file.managed:
- name: /etc/salt/minion
- source: salt://init/files/minion
- user: root
- group: root
- mode:
- template: jinja
- default:
ID: {{ grains['ipv4'] [] }}
- require:
- pkg: salt-minion-install salt-minion-service:
service.running:
- name: salt-minion
- enable: True
- watch:
- file: /etc/salt/minion [root@linux-node1 ~]# salt-ssh 'linux-node2' state.sls init.minion
linux-node2:
----------
ID: salt-minion-install
Function: pkg.installed
Name: salt-minion
Result: True
Comment: The following packages were installed/updated: salt-minion
Started: ::21.462901
Duration: 10700.117 ms
Changes:
----------
salt-minion:
----------
new:
2018.3.-.el7
old:
----------
ID: salt-minion-conf
Function: file.managed
Name: /etc/salt/minion
Result: True
Comment: File /etc/salt/minion updated
Started: ::32.193498
Duration: 140.611 ms
Changes:
----------
diff:
---
+++
@@ -, +, @@
# Since salt uses detached ids it is possible to run multiple minions on the
# same machine but with different ids, this can be useful for salt compute
# clusters.
-id: 192.168.25.92
+id: 192.168.25.91 # Cache the minion id to a file when the minion's id is not statically defined
# in the minion config. Defaults to "True". This setting prevents potential
mode: ----------
ID: salt-minion-service
Function: service.running
Name: salt-minion
Result: True
Comment: Service salt-minion has been enabled, and is running
Started: ::33.108610
Duration: 451.682 ms
Changes:
----------
salt-minion:
True Summary for linux-node2
------------
Succeeded: (changed=)
Failed:
------------
Total states run:
Total run time: 11.292 s

salt-ssh 'linux-node2' state.sls init.minion

总结:

salt-minion方法是salt-mater先执行语法验证,验证通过后发送到minion
minion收到Msater的状态文件默认保存在/var/cache/salt/minion
注意:也有时候salt-master语法验证通过,在minion上可能因为环境问题会执行失败

 

使用salt-ssh初始化系统安装salt-minion的更多相关文章

  1. saltstack 使用salt ‘*’ test.ping 报错Minion did not return(转)

    原文地址:http://blog.51cto.com/4634721/2093019 saltstack 使用salt ‘*’ test.ping 报错Minion did not return. [ ...

  2. The Salt Master has rejected this minion's public key!

    salt查看日志: salt --log-level=all "10.199.165.244" state.highstate 进入调试模式: salt-minion -l deb ...

  3. Salt 系统初始化

    目录 编辑states文件 1.DNS配置  dns.sls(在init目录下创建一个files文件,然后把resolv.conf放到文件下) [root@master init]# cat dns. ...

  4. salt进程查看插件&salt批量创建用户

    接受key 剔除主机   启动 salt-minion-d     软件包的安装   salt '*' state.sls init.env-init test=true   salt批量创建用户: ...

  5. 使用ssh 初始化git一个空java工程

    1:进入git 目录 cd /home/git/repo/ 2:创建一个java工程名 mkdir qft-payment 3:进入工程 cd  qft-payment/ 4:初始化空工程 git - ...

  6. saltstack手册(含官方pdf)

    官方手册 https://docs.saltstack.com/en/pdf/Salt-2019.2.1.pdf 快速入门 SALTSTACK是什么? Salt是一种和以往不同的基础设施管理方法,它是 ...

  7. 学习saltstack (三)

    salt是一个新的基础平台管理工具,2011-02-20诞生,创造者Thoms SHatch,起名salt原因生活中常见.易记,使用saltstack.com原因这个域名没有被注册,Because s ...

  8. Salt Master报错:Minion did not return. [No response]

    在salt master端执行salt ‘*’ test.ping时,某一节点出现如下报错:Minion did not return. [No response] 登陆到这一节点查看minion的日 ...

  9. 翻译-Salt与Ansible全方位比较

    原文链接:http://jensrantil.github.io/salt-vs-ansible.html 作者: Jens Rantil 之前某些时候我需要评估配置管理系统.结合从他人得到的意见,我 ...

随机推荐

  1. CCControlExtension/CCControl

    #ifndef __CCCONTROL_H__ #define __CCCONTROL_H__ #include "CCInvocation.h" #include "C ...

  2. 【[APIO2010]巡逻】

    \(APIO\)的题就是非常难啊 首先看到\(k=1\)的情况,显然我们只需要找到一条直径把这条直径的两端连起来就好了 因为我们连这一条新边的实质是使得这一条链上的边不需要重复经过了,我们想让走的边尽 ...

  3. Odoo字段类型

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9278620.html    一:基本字段类型 Binary:二进制类型,用于保存图片.视频.文件.附件等,在视 ...

  4. Linux学习总结(十八)几个简单的文本处理工具cut sort tr split

    1 命令cut 用来截取某一个字段格式 : cut -d '分隔符' [-cf] n, n为数字,表示第几段-d:后面跟分隔符,分割符要加单引号-c:后面接的是第几个字符-f:后面接的是第几段那么意思 ...

  5. selenium以及浏览器驱动下载安装

    1.下载selenium压缩包 http://pypi.python.org/pypi/selenium 下载后压缩在python文件下的lib>site-package文件夹下 2.进入sel ...

  6. Android SDK Manager仅有一个版本的问题

    搭建好MonkeyRunner的环境之后,建立虚拟器的时候发现SDK的管理器中只有4.3的版本,查阅了一下百度,问题解决如下: (1)在c:\Windows\System32\etc\hosts文件中 ...

  7. IntelliJ IDEA编写的spark程序在远程spark集群上运行

    准备工作 需要有三台主机,其中一台主机充当master,另外两台主机分别为slave01,slave02,并且要求三台主机处于同一个局域网下 通过命令:ifconfig 可以查看主机的IP地址,如下图 ...

  8. 3.C++和C混合编程

    最近经常看到头文件中有 #ifdef __cplusplus extern "C" { #endif ....... #ifdef __cplusplus } #endif 这样的 ...

  9. UICollectionViewFlowLayout 的 estimatedItemSize 属性

    这个是collectionView的item 自适应fram的属性, 介绍在网上很多, 但是用法没有太多的举例, 其实这个属性的使用也很简单, 随便给它的不为CGSizeZero的值就好, 但是, 但 ...

  10. ansible实用例子

    寻找/etc/ 名为"hosts" 递归查找 ansible webserver -m find -a ' path=/etc/ file_type=any recurse=yes ...