在 **SaltStack(Salt)**中,远程执行命令是最核心的功能之一,通常通过 salt 命令来调用 Execution Modules 完成。下面从基础到进阶系统说明。
salt '<target>' <module.function> [参数]
示例:在所有 Minion 上执行命令
salt '*' cmd.run 'uptime'
salt '*' cmd.run 'ls /tmp'
执行指定 shell 命令,返回结果由 Minion 收集并汇报给 Master。
✅ 适用:临时命令
❌ 不适合复杂逻辑或长期状态管理
salt 'minion1' cmd.run 'hostname'
salt 'web*' cmd.run 'systemctl status nginx'
salt -G 'os:CentOS' cmd.run 'uname -r'
常见条件:
os:CentOSos:Ubuntucpuarch:x86_64salt -I 'role:web' cmd.run 'systemctl reload nginx'
在 Master 配置 /etc/salt/master:
nodegroups:
web: 'web*'
db: 'db*'
执行:
salt -N web cmd.run 'uptime'
salt '*' -b 10 cmd.run 'df -h'
一次并发 10 台
salt --async '*' cmd.run 'sleep 30'
查看任务:
salt-run jobs.list_jobs
salt-run jobs.lookup_jid <JID>
salt '*' cmd.run 'echo hello'
salt '*' cmd.script salt://scripts/deploy.sh
salt '*' test.ping
salt '*' pkg.install nginx
salt '*' pkg.upgrade
salt '*' service.status nginx
salt '*' service.restart nginx
salt '*' state.apply nginx
如果在 Minion 上执行(不通过 Master):
salt-call cmd.run 'hostname'
Master
|
| salt '<target>' cmd.run 'command'
|
Minion 接收 → 执行 → 返回结果
Minion 默认每 5 秒 连接 Master(zeromq)
salt '*' test.ping
tail -f /var/log/salt/minion
远程命令以 root 身份执行(默认)
salt -G 'os:CentOS' cmd.run 'yum update -y kernel'
salt 'web[1-3]' cmd.run 'deploy.sh'
✅ SaltStack 远程执行核心命令:
salt <target> <module.function> [args]
✅ 关键能力:
如果你愿意,我可以:
你可以直接告诉我你的使用场景。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。