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++派生类成员访问作用域,同名重载

    #include <iostream> using namespace std; class CFatherSum //父类Sum { public: int m_iVar; //公用数据 ...

  2. 【bbs】logout.php

    字体大小通过js设定,并结合@media,可实现自适应. 图片自适应窗口 实现流水灯手机端不滚动,script嵌套 多余文字省略号显示  http://www.cnblogs.com/yujihang ...

  3. PAT——1054. 求平均值

    本题的基本要求非常简单:给定N个实数,计算它们的平均值.但复杂的是有些输入数据可能是非法的.一个“合法”的输入是[-1000,1000]区间内的实数,并且最多精确到小数点后2位.当你计算平均值的时候, ...

  4. xmppframework 简介

    XMPPFramework是一个OS X/iOS平台的开源项目,使用Objective-C实现了XMPP协议(RFC-3920),同时还提供了用于读写XML的工具,大大简化了基于XMPP的通信应用的开 ...

  5. POJ 2299 Ultra-QuickSort 求逆序数 (归并或者数状数组)此题为树状数组入门题!!!

    Ultra-QuickSort Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 70674   Accepted: 26538 ...

  6. 当面试官问你sql优化的时候。。。

    当面试官问你有关sql优化的问题时,直接拿笔写给他: 8-select 9-distinct<column_list> 1-from left_table 3-<join_type& ...

  7. 面试 : C语言 功底 被 鄙视了

    第一道:被鄙视 的 C语言语法问题 请看 下面 程序 : 错误程序: void GetMemory( char *p ){ p = (char *) malloc( 100 );}void Test( ...

  8. [Zedboard Linux系统移植]-从MACHINE_START開始

    改动自:http://www.cnblogs.com/lknlfy/archive/2012/05/06/2486479.html 内核的启动过程? 3)内核的启动过程? arch/arm/kerne ...

  9. Datatable报错Uncaught TypeError: Cannot read property 'cell' of undefined

    使用Datatables时,报出错误 仔细想想,是因为我在columns里加入了id,并设置visible:false 但是却没在下面的HTML部分多加一个 th 虽然我觉得因为id是隐藏的,不用加上 ...

  10. java 进销存 库存管理 销售报表 商户管理 springmvc SSM crm 项目

    系统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏览器使用) 2.springmvc +spring4.3.7+ mybaits3.3  SSM ...