Saltstack四种运行方式:
远程执行是Saltstack的核心功能之一。主要使用Salt模块批量给选定的minion端执行相应的命令,并获得返回结果。
举例1:如上文例子“判断Salt的minion是否存活?”
salt:是saltstack自带的一个命令
* :表示目标主机,这里表示所有目标主机
test.ping:test是saltstack中的一个模块,ping则是这个模块下面的一个方法
举例:2:saltstack使用cmd.run模块远程执行shell命令
salt'<target>'<function> [arguments]
目标主机target匹配方式:
远程执行常用模块(点击所有模块列表):
3.1 通配符匹配
[root@Saltstack01 /]# salt'*'
test.ping
[root@Saltstack01 /]# salt'Saltstack02'
test.ping
[root@Saltstack01 /]# salt'*02'
test.ping
[root@Saltstack01 /]# salt'Saltstack0[1|2]'
test.ping
[root@Saltstack01 /]# salt'Saltstack0[!1|2]'
test.ping
[root@Saltstack01 /]# salt'Saltstack0?'
test.ping
3.2 列表匹配
[root@Saltstack01 /]# salt -L'Saltstack01,Saltstack02'test.ping
3.3 正则匹配
[root@Saltstack01 /]# salt -E'^Salt'
test.ping
[root@Saltstack01 /]# salt -E'^Salt.*2'
test.ping
3.4 IP匹配
[root@Saltstack01 /]# salt -S'172.18.20.227'
test.ping
[root@Saltstack01 /]# salt -S'172.18.20.0/24'
test.ping
3.5 复合匹配
[root@Saltstack01 /]# salt -C'G@os:Centos and S@172.18.20.227'test.ping
3.6 分组匹配
[root@Saltstack01 /]# vim /etc/salt/master
nodegroups:
webserver:'Saltstack01,Saltstack02'
dbserver:'Saltstack03'
[root@Saltstack01 /]# systemctl restart salt-master
[root@Saltstack01 /]# salt -N'webserver'
test.ping
[root@Saltstack01 /]# salt -N'dbserver'
test.ping
3.7 Grains匹配
[root@Saltstack01 /]# salt -G'os:Centos'
test.ping
[root@Saltstack01 /]# salt -G'localhost:Saltstack02'
test.ping
4.1 test模块
功能:用于测试。
[root@Saltstack01 /]# salt'*'test.ping
4.2 user模块
功能:详见官方。
salt'*'user.add name <uid> <gid> <groups> <home> <shell>
4.3 cmd模块
功能:实现远程的命令行调用执行,可以使用shell所有命令(默认具备root操作权限,使用时需评估风险)
4.4 pkg模块
功能:软件包状态管理,会根据操作系统不同,选择对应的安装方式(如CentOS系统默认使用yum,Debian系统默认使用apt-get)
[root@Saltstack01 /]# salt'*'
pkg.install"vsftpd"
#安装
[root@Saltstack01 /]# salt'*'
pkg.remove"vsftpd"
#卸载
[root@Saltstack01 /]# salt'*'
pkg.latest_version"vsftpd"
#安装最新版本
[root@Saltstack01 /]# salt'*'
pkg.upgrade"vsftpd"
#更新软件包
[root@Saltstack01 /]# salt'*'
pkg #查看帮助手册
表上表示已安装程序包。
4.5 file模块
功能:被控主机常见的文件操作,包括文件读写、权限、查找、校验。
#校验所有minion主机文件的加密信息,支持md5、sha1、sha224、shs256、sha384、sha512加密算法
[root@Saltstack01 /]# salt'*'
file.get_sum /etc/passwd md5
#修改所有minion主机/etc/passwd文件的属组、用户权限、等价于chown root:root /etc/passwd
[root@Saltstack01 /]]# salt'*'
file.chown /etc/passwd root root
#获取所有minion主机/etc/passwd的stats信息
[root@Saltstack01 /]]# salt'*'
file.stats /etc/passwd
#获取所有minion主机/etc/passwd的权限mode,如755,644
[root@Saltstack01 /]]# salt'*'
file.get_mode /etc/passwd
#修改所有minion主机/etc/passwd的权限mode为0644
[root@Saltstack01 /]]# salt'*'
file.set_mode /etc/passwd 0644
#在所有minion主机创建/opt/test目录
[root@Saltstack01 /]]# salt'*'
file.mkdir /opt/test
#在所有minion主机穿件/tmp/test.conf文件
[root@Saltstack01 /]]# salt'*'
file.touch /tmp/test.conf
#将所有minion主机/tmp/test.conf文件追加内容'maxclient 100'
[root@Saltstack01 /]]# salt'*'
file.append /tmp/test.conf'maxclient 100'
#删除所有minion主机的/tmp/test.conf文件
[root@Saltstack01 /]]# salt'*'
file.remove /tmp/test.conf
4.6 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>
......
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。