SaltStack远程执行命令使用指简介
Posted 如何在3年拿到50K
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SaltStack远程执行命令使用指简介相关的知识,希望对你有一定的参考价值。
一、文档说明
工作中用到了salt,这里简单整理下一些常用命令,理解远程的命令语法,方便工作展开
二、基本概念
2.1 salt是什么?
SaltStack,是开源的配置管理和远程执行引擎。
- 是基于Python开发的C/S架构
- 底层使用ZeroMQ消息队列pub/sub方式通信。ZeroMQ号称世界上最快的消息引擎。远程
- 使用SSL证书签发的方式进行认证管理。
2.2 核心概念
- Master 主,管理所有从服务器
- Minions 从,术语叫做minion
2.3 GRAINS
Salt中用来获取系统底层信息的接口,比如操作系统,域名,ip,内核信息,内存等系统属性。
Grains是相对静态的,大小写不区分,可以自定义grains信息。
# 查看服务所有的grain项目keys
1. salt '*' grains.items # 查看minion的全部静态变量
2. salt '*' grains.ls # 显示grains的变量名称
3. salt '*' grains.item os # 显示某一个变量
4. salt '*' grains.get ipv4 # 直接获取内容
5. salt -G 'os:CentOs' test.ping # 所有os的centos的 执行test.ping (-G就是grains)
三、salt远程执行命令精讲
3.1 slat命令基本格式
salt '<target>' <function> [arguments]
- target:执行salt命令的目标,可以使用正则表达式
- function:方法,由module提供
- arguments:function的参数
通俗解释:
salt 对target代表的服务器 执行function函数 ,这个函数参数是arguments
例如:在所有example.org结尾的服务器上执行 test.version函数(无参),这个函数会返回salt的版本信息。
salt '*.example.org' test.version
上面是基础使用方法,如何掌握所有命令的使用呢,那就是抠出index和dict,建立索引和字典后就可以掌握该命令所有的用法。
3.2 Target
salt后面的参数用来修饰target的内容格式,默认使用通配符,-E代表是正则格式
通配符Default
salt '*.example.org' test.version
正则表达式Expression
salt -E 'virtmach[0-9]' test.version
指定清单List
salt -L 'foo,bar,baz,quo' test.version
条件表达式Combined
salt -C 'G@os:Ubuntu and webser* or E@database.*' test.version
指定Grains 过滤
salt -G 'os:Ubuntu' test.version
-G 代表通过grains的键值对匹配,匹配上的服务器执行function
<grain key>:< value regular expression>
例如:
salt -G 'ipv4:10.3.*' test.version
代表如果minions中的grains信息中,存在ipv4以10.3开头代表被选中,在选中的服务器列表执行test.version(获取服务器信息),获取grain信息的方法见上方
REF:
salt target全参数参考
3.3 FUNCTION 函数
在minion上远程执行的命令,这里列举几个常用的
远程执行命令
# 在所有minions上执行 查看hostname和ip地址的命令
salt “*” cmd.run " hostname -i"
此外还有 cmd.shell cmd.exec提供了多种方式各种脚本的远程执行方式,几乎可以远程执行任何命令,功能非常强大。
salt准备了各种应用的远程执行命令,批量操作的利器。
全部函数查询
3.4 Args参数
空格分隔的参数列表,调用函数的具体参数
salt '*' cmd.exec_code python 'import sys; print sys.version'
salt '*' pip.install salt timeout=5 upgrade=True
参考资料
https://docs.saltproject.io/en/latest/topics/tutorials/modules.html
https://docs.saltproject.io/en/latest/ref/cli/salt.html#synopsis
https://www.cnblogs.com/biglittleant/p/8743821.html
后记
工作用到了这个命令,快速学习一下基本用法。发现salt的功能无以伦比的强大,解决了海量集群批量操作的问题。运维必备的技能吧。后续补充相关的概念和原理文档。
以上是关于SaltStack远程执行命令使用指简介的主要内容,如果未能解决你的问题,请参考以下文章
风险提示天融信关于SaltStack远程命令执行漏洞风险提示
安全通告SaltStack 远程命令执行漏洞风险通告(CVE-2020-11651/CVE-2020-11652)
saltstacksaltstack自动化运维(master与minion配置远程执行sls文件modulesgrainsjinjapillar)