saltstack远程执行命令(三)

本文介绍了 SaltStack 的基本使用方法,包括常见的模块如 cmd.run 的使用,以及如何通过简单的命令实现对远程主机的服务管理和网络监控。还提供了一些实际应用场景的例子。

语法:salt '*' cmd.run "command

salt 目标 模块 命令 得出返回值

目标:指操作对象

支持符号,正则,等等

通常情况下,"*"所有,或者“minion_id”单台主机就足够了,运维脚本简单实用最好。saltsatck是平台管理,操作时命令越复杂越容易出问题。所以尽量不要搞太复杂的命令串。

PS:salt -E 后面是正则,祥细用法见官网。

模块

模块有很多,常用的是cmd.run,后接shell命令,其他模块的用法用到时候查官网,简单举几个例子:

salt '*' service.available sshd 判断sshd服务是否存活

salt '*' service.available sshd 与上面相反,存活为FALSE

salt '*' service.get_all() 获取当前所有服务

salt '*' sevice.reload httpd 重新加载

salt '*' network.active_tcp 获取当前tcp连接,一般用于二次开发

salt '*' network.dig baidu.com 检查域名解析

返回值

https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html

PS:每个主机都需要安装yum -y install MySQL-python



### 如何使用 SaltStack 批量执行 Shell 命令 SaltStack 是一种强大的配置管理工具,能够通过其命令模块实现批量执行 Shell 脚本或命令的功能。以下是具体的操作方法以及注意事项。 #### 配置 Master 和 Minion 在使用 SaltStack 进行批量操作之前,需要确保已经正确设置了 Salt 的 Master 和 Minion 环境[^4]。Master 主机负责发送指令给多个 Minion 客户端,Minion 则接收并执行这些指令。 #### 使用 `cmd.run` 模块执行单条命令 可以通过 `salt '*' cmd.run '<command>'` 来向所有连接到 Master 的 Minions 发送一条特定的 Shell 命令。例如: ```bash salt '*' cmd.run 'ls -l /tmp' ``` 这条命令会返回所有 Minions 上 `/tmp` 文件夹的内容列表[^3]。 #### 对指定角色的主机执行命令 如果只希望某些具有特定角色(如 HTTPD 或数据库服务器)的机器运行某条命令,则可以借助 Grains 功能来筛选目标节点。比如重启 Apache 服务的例子如下所示: ```bash salt -G 'roles:HTTPD' cmd.run 'systemctl restart httpd' ``` 这里 `-G` 参数表示按 Grain 属性过滤目标设备;上述例子只会让那些被标记为拥有 “HTTPD” 角色的系统去重新启动它们各自的 Web 服务进程。 #### 编写自定义脚本来完成复杂任务 对于更复杂的场景可能需要用到多步逻辑处理或者参数传递等情况时,建议先编写好相应的 Bash Script 并上传至共享目录后再调用它来进行远程部署工作流控制。假设我们有一个名为 backup.sh 的备份程序存放在 /srv/salt/scripts/backup.sh 中: 1. **创建脚本** 将您的 shell script 放入 master server 的文件根路径下 (通常位于 /srv/salt/)。 ```bash #!/bin/bash tar czf /var/backups/home.tar.gz /home/ ``` 2. **分发脚本** 使用 cp.get_file 方法将此脚本复制到每台 minion 设备上: ```bash salt '*' cp.get_file salt://scripts/backup.sh /usr/local/bin/backup.sh mode=755 ``` 3. **执行脚本** 接下来就可以像平常那样调用刚才放置好的可执行二进制档啦! ```bash salt '*' cmd.script salt://scripts/backup.sh ``` 以上过程展示了如何利用 SaltStack 不仅能简单快速地推送单一命令还能灵活应对较为繁琐的任务需求[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值