SaltStack远程执行命令使用指简介

一、文档说明

工作中用到了salt,这里简单整理下一些常用命令,理解远程的命令语法,方便工作展开

二、基本概念

2.1 salt是什么?

SaltStack,是开源的配置管理和远程执行引擎。

  1. 是基于Python开发的C/S架构
  2. 底层使用ZeroMQ消息队列pub/sub方式通信。ZeroMQ号称世界上最快的消息引擎。远程
  3. 使用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的功能无以伦比的强大,解决了海量集群批量操作的问题。运维必备的技能吧。后续补充相关的概念和原理文档。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是SaltStack常用命令: - salt '*' test.ping - salt-run manage.up - salt '*' state.highstate - salt '*' state.sls <sls_file> - salt-key -L - salt-key -A - salt '*' network.ip_addrs - salt '*' network.interfaces - salt '*' network.traceroute <hostname> - salt '*' network.ping <hostname> ### 回答2: SaltStack 是一个基于Python编写的运维工具,用于配置管理、远程执行命令、软件部署等任务。以下是一些常用的SaltStack命令: 1. salt 'minion_id' test.ping:检测定minion是否在线,返回True或False。 2. salt 'minion_id' cmd.run 'command':在定minion上执行命令,并返回输出结果。 3. salt 'minion_id' state.apply 'state_name':应用定的state,用于执行配置管理任务。state文件定义了目标服务器的配置状态。 4. salt 'minion_id' pkg.install 'package_name':在定minion上安装软件包。 5. salt 'minion_id' service.start 'service_name':启动定minion上的服务。 6. salt 'minion_id' grains.get 'grain_name':获取定minion的定grain(系统信息)的值。例如,grains.get os 可以获取操作系统类型。 7. salt-key:用于管理SaltStack中minion的key。使用该命令可以接受(accept)、拒绝(reject)或删除(delete)minion的key。 8. salt-run manage.up:列出已连接的minion。 9. salt-run jobs.active:列出正在运行的SaltStack作业。 10. salt-run jobs.list_jobs:列出所有已完成的SaltStack作业。 这些命令只是SaltStack中的一小部分常见命令,SaltStack提供了非常丰富的命令和功能,可以根据具体需求来灵活运用。 ### 回答3: SaltStack 是一个开源的自动化运维工具,常用于配置管理和远程执行任务。下面是一些常用的 SaltStack 命令: 1. salt "*" test.ping:用于测试所有 Salt Minion 是否在线。返回值是一个布尔值,表示 Minion 是否可达。 2. salt "*" grains.items:获取所有 Minion 的 grains(系统信息),包括操作系统、CPU、内存等信息。 3. salt "*" cmd.run "hostname":在所有 Minion 上执行命令,此处是获取主机名。可以替换 `hostname` 为其他任意命令。 4. salt "*" state.apply <state_name>:应用某个状态文件。`<state_name>` 是状态文件的名称,可以是单个文件或者目录。 5. salt "*" pkg.install <package_name>:在所有 Minion 上安装定的软件包。`<package_name>` 是软件包的名称。 6. salt "*" service.start <service_name>:启动定的服务。`<service_name>` 是服务的名称。 7. salt "*" file.get <file_path>:获取某个文件的内容。`<file_path>` 是文件的路径。 8. salt "*" file.append <file_path> text=<text>:在某个文件的末尾追加文本。`<file_path>` 是文件的路径,`<text>` 是要追加的文本。 9. salt "*" cmd.script <script_path>:在所有 Minion 上执行定的脚本。`<script_path>` 是脚本的路径。 10. salt "*" network.interfaces:获取所有 Minion 的网络接口信息。 以上是一些常用的 SaltStack 命令,可以帮助进行系统配置管理和任务自动化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值