使用salt-ssh初始化系统安装salt-minion
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的更多相关文章
- saltstack 使用salt ‘*’ test.ping 报错Minion did not return(转)
原文地址:http://blog.51cto.com/4634721/2093019 saltstack 使用salt ‘*’ test.ping 报错Minion did not return. [ ...
- 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 ...
- Salt 系统初始化
目录 编辑states文件 1.DNS配置 dns.sls(在init目录下创建一个files文件,然后把resolv.conf放到文件下) [root@master init]# cat dns. ...
- salt进程查看插件&salt批量创建用户
接受key 剔除主机 启动 salt-minion-d 软件包的安装 salt '*' state.sls init.env-init test=true salt批量创建用户: ...
- 使用ssh 初始化git一个空java工程
1:进入git 目录 cd /home/git/repo/ 2:创建一个java工程名 mkdir qft-payment 3:进入工程 cd qft-payment/ 4:初始化空工程 git - ...
- saltstack手册(含官方pdf)
官方手册 https://docs.saltstack.com/en/pdf/Salt-2019.2.1.pdf 快速入门 SALTSTACK是什么? Salt是一种和以往不同的基础设施管理方法,它是 ...
- 学习saltstack (三)
salt是一个新的基础平台管理工具,2011-02-20诞生,创造者Thoms SHatch,起名salt原因生活中常见.易记,使用saltstack.com原因这个域名没有被注册,Because s ...
- Salt Master报错:Minion did not return. [No response]
在salt master端执行salt ‘*’ test.ping时,某一节点出现如下报错:Minion did not return. [No response] 登陆到这一节点查看minion的日 ...
- 翻译-Salt与Ansible全方位比较
原文链接:http://jensrantil.github.io/salt-vs-ansible.html 作者: Jens Rantil 之前某些时候我需要评估配置管理系统.结合从他人得到的意见,我 ...
随机推荐
- angular cli
1. 安装cnpm: npm install -g cnpm --registry=https://registry.npm.taobao.org 2. 安装angular/cli: cnpm ins ...
- BZOJ1058:[ZJOI2007]报表统计(Splay,堆)
Description 小Q的妈妈是一个出纳,经常需要做一些统计报表的工作.今天是妈妈的生日,小Q希望可以帮妈妈分担一些工 作,作为她的生日礼物之一.经过仔细观察,小Q发现统计一张报表实际上是维护一个 ...
- BZOJ1014:[JSOI2008]火星人(Splay,hash)
Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀.比方说,有这样一个字符串:madamimadam, 我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 ...
- weblogic之CVE-2016-0638反序列化分析
此漏洞是基于CVE-2015-4852漏洞进行黑名单的绕过,CVE-2015-4852补丁主要应用在三个位置上 weblogic.rjvm.InboundMsgAbbrev.class :: Serv ...
- 组合测试(Combinatorial Test)/配对测试 (pairwise)
组合测试方法:配对测试实践 实施组合测试 常用的Pairwise工具集:http://www.pairwise.org/tools.asp 成对测试(Pairwise Testing)又称结对测试.两 ...
- 3、Spring Cloud - Eureka(构建服务端/客户端)
3.1.Eureka简介 3.1.1.什么是 Eureka 和Consul.Zookeeper 类似, Eureka 是一个用于服务注册和发现的组件,最开始主要应用 于亚马逊公司旗下的云计算服务平台 ...
- GPS-Graph Processing System Graph Coloring算法分析 (三)
HamaWhite 原创,转载请注明出处!欢迎大家增加Giraph 技术交流群: 228591158 Graph coloring is the problem of assignin ...
- 通讯协议(三)Protocol Buffers协议
Protocol Buffers是Google开发一种数据描述语言,能够将结构化数据序列化,可用于数据存储.通信协议等方面. 不了解Protocol Buffers的同学可以把它理解为更快.更简单.更 ...
- Python 有用的 map() deduce() filter() 函数
#!/usr/bin/python#5!+4!+3!+2!+1! #give 3 return 3*2*1def jiechen(n): N = map(lambda x:x+1,range(n)) ...
- selenium java maven 自动化测试(一) helloworld
本教程使用selenium-java,简单的完成了网页访问 网页内容获取,表单填写以及按钮点击. 1. 使用maven构建项目 在pom中添加如下依赖: <dependency> < ...