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. 《C++之那些年踩过的坑(一)》

    C++之那些年踩过的坑(一) 作者:刘俊延(Alinshans) 本系列文章针对我在写C++代码的过程中,尤其是做自己的项目时,踩过的各种坑.以此作为给自己的警惕. 转载请注明原文来自: http:/ ...

  2. fiddler常用功能一

    fiddler备忘,好久不用,有些步骤忘记了 1.本机pc,目前ie和chrome都可以直接抓取,但是搜狗浏览器暂时抓不到 2.手机端抓包 (1)设置下代理:fiddler客户端查看下端口,然后在手机 ...

  3. Genymotion集成到Eclipse

    在Eclipse中使用Genymotion Google的ADT中自带的模拟器速度太慢,可以使用Genymotion代替.关于Genymotion的安装方法,可以直接访问官网,需要注册账号,因为创建模 ...

  4. nRF5 SDK for Mesh(二) Getting started 快速开始

    Getting started To get started, take a look at the Light switch demo. It shows how a simple applicat ...

  5. linux下安装perl

    1.在官网  http://www.perl.org/get.html  下载perl安装包 2.上传服务器并解压 3../Configure -des -Dprefix=安装目录 4.make&am ...

  6. from表单提交之前数据判空

    在input标签中写onclick事件,不管返回是真是假都会继续提交表单. 使用onsubmit事件 <form action="login.html" method='po ...

  7. ODI使用流程

    ---恢复内容开始--- ODI流程 Topology 1.建立 源 物理结构体系 2.建立 目的 物理结构体系 步骤同上 3.建立 源 逻辑架构 4.建立 目的 逻辑架构 步骤同上 Designer ...

  8. elementUi + express 上传图片

    // 前端代码 <el-upload drag action="http://localhost:4001/article/uploadCoverImage" multipl ...

  9. 浅谈ES6基础——Promise

    IMAGE加载 Callback Hell function loadImg(src,callback,fail) { var img = document.createElement('img'); ...

  10. chrome浏览器页面获取绑定返回顶部动画事件插件

    在chrome浏览器下页面加载: var top = $("body").scrollTop()  ; console.log(top)                      ...