SaltStack--远程执行
saltstack远程执行#
安装完Saltstack
后可以立即执行shell
命令,更新软件包并将文件同时分不到所有受管系统。所有回复都以一致的可配置格式返回。远程执行参考文档:http://docs.saltstack.cn/topics/tutorials/modules.html
[root@salt-master ~]# salt '*' cmd.run "uptime" salt-minion01: 15:23:08 up 1 day, 58 min, 2 users, load average: 0.00, 0.03, 0.08 salt-minion02: 15:23:08 up 21:38, 2 users, load average: 0.00, 0.04, 0.10 salt-minion03: 15:23:08 up 21:36, 2 users, load average: 0.00, 0.04, 0.10
Salt命令的结构语法#
salt '<target>' <function> [arguments]
目标主机Target#
1、通配符匹配
[root@salt-master ~]# salt '*' test.ping [root@salt-master ~]# salt 'salt-minion01' test.ping [root@salt-master ~]# salt '*01' test.ping [root@salt-master ~]# salt 'salt-minion0[1|2]' test.ping [root@salt-master ~]# salt 'salt-minion0[!1|2]' test.ping [root@salt-master ~]# salt 'salt-minion0?' test.ping
2、列表匹配
[root@salt-master ~]# salt -L 'salt-minion01,salt-minion02' test.ping
3、正则匹配
[root@salt-master ~]# salt -E '^salt' test.ping [root@salt-master ~]# salt -E '^salt.*2$' test.ping
4、IP匹配
[root@salt-master ~]# salt -S '192.168.1.32' test.ping [root@salt-master ~]# salt -S '192.168.1.0/24' test.ping
5、复合匹配
[root@salt-master ~]# salt -C 'G@os:CentOS and S@192.168.1.32' test.ping
6、分组匹配
[root@salt-master ~]# vim /etc/salt/master nodegroups: webserver: 'salt-minion01,salt-minion02' dbserver: 'salt-minion03 [root@salt-master ~]# systemctl restart salt-master [root@salt-master ~]# salt -N 'webserver' test.ping [root@salt-master ~]# salt -N 'dbserver' test.ping
7、Grains匹配
[root@salt-master ~]# salt -G 'os:CentOS' test.ping [root@salt-master ~]# salt -G 'localhost:salt-minion02' test.ping
说明:上面这些匹配方式在top.sls
文件中同样适用。
模块Module#
test 模块多用于测试
user 模块用于用户管理
cmd 模块可以执行任意shell命令
pkg 模块用于软件包管理
file 模块多用于配置
service 模块用于服务管理
test模块
模块名:test 功能:用于测试 [root@salt-master ~]# salt '*' test.ping
user模块
参考:http://docs.saltstack.cn/ref/modules/all/salt.modules.useradd.html#module-salt.modules.useradd # salt '*' user.add name <uid> <gid> <groups> <home> <shell> [root@salt-master ~]# salt '*' user.add testuser
cmd模块
模块名:cmd 功能:实现远程的命令行调用执行(默认具备root操作权限,使用时需评估风险) #查看所有minion内存和磁盘使用情况 [root@salt-master ~]# salt '*' cmd.run "free -m" [root@salt-master ~]# salt '*' cmd.run "df -h"
pkg模块
模块名:pkg 功能:软件包状态管理,会根据操作系统不同,选择对应的安装方式(如CentOS系统默认使用yum,Debian系统默认使用apt-get) #安装 [root@salt-master ~]# salt '*' pkg.install "vsftpd" #卸载 [root@salt-master ~]# salt '*' pkg.remove "vsftpd" #安装最新版本 [root@salt-master ~]# salt '*' pkg.latest_version "vsftpd" #更新软件包 [root@salt-master ~]# salt '*' pkg.upgrade "vsftpd" #查看帮助手册 [root@salt-master ~]# salt '*' pkg
file模块
模块名:file 功能:被控主机常见的文件操作,包括文件读写、权限、查找、校验 #校验所有minion主机文件的加密信息,支持md5、sha1、sha224、shs256、sha384、sha512加密算法 [root@salt-master ~]# salt '*' file.get_sum /etc/passwd md5 #修改所有minion主机/etc/passwd文件的属组、用户权限、等价于chown root:root /etc/passwd [root@salt-master ~]# salt '*' file.chown /etc/passwd root root #获取所有minion主机/etc/passwd的stats信息 [root@salt-master ~]# salt '*' file.stats /etc/passwd #获取所有minion主机/etc/passwd的权限mode,如755,644 [root@salt-master ~]# salt '*' file.get_mode /etc/passwd #修改所有minion主机/etc/passwd的权限mode为0644 [root@salt-master ~]# salt '*' file.set_mode /etc/passwd 0644 #在所有minion主机创建/opt/test目录 [root@salt-master ~]# salt '*' file.mkdir /opt/test #在所有minion主机穿件/tmp/test.conf文件 [root@salt-master ~]# salt '*' file.touch /tmp/test.conf #将所有minion主机/tmp/test.conf文件追加内容'maxclient 100' [root@salt-master ~]# salt '*' file.append /tmp/test.conf 'maxclient 100' #删除所有minion主机的/tmp/test.conf文件 [root@salt-master ~]# salt '*' file.remove /tmp/test.conf
service模块
模块名:service 功能:被控主机程序包服务管理 #开启(enable)禁用(disable) salt '*' service.enable <service name> salt '*' service.disabled <service name> #reload、restart、start、stop、status操作 salt '*' service.reload <service name> salt '*' service.restart <service name> salt '*' service.start <service name> salt '*' service.stop <service name> salt '*' service.status <service name>
作者:别来无恙-
出处:https://www.cnblogs.com/yanjieli/p/10873051.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类