SaltStack--远程执行

摘要:
//docs.saltstack.cn/topics/tutorials/modules.html[root@salt-master~]#salt'*'cmd.run“uptime”salt-minon01:函数>
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]

SaltStack--远程执行第1张

目标主机Target

SaltStack--远程执行第2张

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

SaltStack--远程执行第3张

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>

saltstack快速入门

saltstack配置管理

saltstack数据系统

saltstack状态判断

saltstack使用salt-ssh

免责声明:文章转载自《SaltStack--远程执行》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇RHEL7.1安装VNCC# 任务栏的相关信息下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Ansible工作流程详解

1:Ansible的使用者           ------>Ansible的使用者来源于多种维度,(1):CMDB(Configuration Management Database,配置管理数据库),CMDB存储和管理着企业的IT架构中的各项配置信息,是构建ITIL项目的核心工具,运维人员可以组合CMDB和Ansible,通过CMDB直接下发指令...

10个 NPM 使用技巧

对于一个项目,常用的一些npm简单命令包含的功能有:初始化一个文件夹( npm init ),下载npm模块( npm install ),创建测试( npm tese ) 和自定义脚本( npm run )。但是,进一步了解一些 npm 的使用技巧可以彻底改变你的日常开发任务。 注:如果你需要关于初学npm的参考,可以参阅我们的 初学者指南 。如果你对...

Python使用pip安装matplotlib模块

matplotlib是python中强大的画图模块。 首先确保已经安装python,然后用pip来安装matplotlib模块。 进入到cmd窗口下,建议执行python -m pip install -U pip setuptools进行升级。 接着键入python -m pip install matplotlib进行自动的安装,系统会自动下载安装包...

Chrome开发者之测试应用

一、Chrome开发者工具简介 1.1、开发者工具(DevTools)调用 二、Chrome DevTools详细介绍 1.1、模块介绍 2.1、元素(Elements)详解 2.1.1、元素编辑 2.1.2、辅助元素定位 2.1.3、ChroPath插件 3.1、控制台(Console)详解 4.1、源代码(Sources)详解 5.1、网络(Netwo...

RHEL6下squid代理之正向代理 枯木

        Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要...

02 . Ansible高级用法(运维开发篇)

自动化任务简介 假设我们要在10台linux服务器上安装一个nginx服务,手动是如何做的? # 第一步, ssh登录NUM(1,n)服务器 # 第二步,输入对应服务器密码 # 第三步,执行命令: yum install nginx 循环操作n=10 # 第四步,执行命令: service nginx start # 第五步,退出登录 自动化任务执行的意...