SaltStack--异步执行

原创
小哥 3年前 (2022-11-02) 阅读数 8 #大杂烩

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 [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

[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 salt service.disabled

reload、restart、start、stop、status操作

salt service.reload salt service.restart salt service.start salt service.stop salt * service.status

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除