利用 Saltstack 远程执行命令
Saltstack的一个比较突出优势就是具备执行远程命令的功能。
操作方法与func
(https://fedorahosted.org/func/)相似,可以帮助运维人员完成集中化的操作平台。
http://docs.saltstack.cn/topics/targeting/index.html
命令格式:salt '<操作目标>' <方法> [参数]
查看被控制机的内存使用情况
[root@saltstack-master master]# salt 'saltstack_web1group_1' cmd.run 'free -m'
saltstack_web1group_1:
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
其中针对<操作目标>,saltstack提供了多种方法对被控制端(id)进行过滤。下面列举常用的具体参数:
1)-E:--pcre:通过正则表达式进行匹配。
查看被控制端saltstack字符开头的主机id名是否连通。
[root@saltstack-master master]# salt -E '^saltstack.*' test.ping
saltstack_web1group_1:
True
saltstack_web1group_2:
True
2)-L:--list 以主机id名列表的形式进行过滤,格式与Python的列表相似,即不同主机id名称使用逗号分隔。
获取主机id名为saltstack_web1group_1和
saltstack_web1group_2获取完整操作系统发行版名称;
[root@saltstack-master master]# salt -L 'saltstack_web1group_1,saltstack_web1group_2' grains.item osfullname
saltstack_web1group_1:
----------
osfullname:
CentOS
saltstack_web1group_2:
----------
osfullname:
CentOS
3)-G:--grain 根据被控主机的grains信息(grains是saltstack重要组件之一,重要作用是收集被控主机的基本系统信息)进行匹配过滤,格式为'<grain value>:<glob expression>'。
比如过滤内核为Linux的主机可以写成'kernel:Linux',如果同时需要正则表达式的支持可以切成--grain-pcre参数来执行。
获取主机发行版本为6.5的Python版本号
[root@saltstack-master ~]# salt -G 'osrelease:6.5' cmd.run 'python -V'
saltstack_web1group_1:
Python 2.6.
saltstack_web1group_2:
Python 2.6.
4)-I:--pillar 根据被控主机的pillar(作用是定义与被控主机相关的任何数据,定义好的数据可以被其他组件使用)信息进行过滤匹配,格式为'对象名称:对象值'。
比如过滤所有具备'apache:httpd' pillar值的主机。
探测具有"httpd:root:/data"信息的主机连通性。
[root@saltstack-master ~]# salt -I 'httpd:root:/data' test.ping
saltstack_web1group_1:
True
saltstack_web1group_2:
True
其中pillar属性配置文件如下:
httpd:
root: /data
5)-N:--nodegroup 根据主控端master配置文件中的分组名称进行过滤。
如下配置的组信息(主机信息支持正则表达式、grain、条件运算符等),通常根据业务类型划分,不同业务具备相同的特点,包括部署环境、应用平台、配置文件等。
L@:表示后面的主机id格式为列表,即主机id以逗号隔开;
G@:表示以grain格式描述;
S@:表示以ip子网或地址格式描述;
探测web1group(或web2group)被控主机的连通性
[root@saltstack-master salt]# vim /etc/salt/master
nodegroups:
web1group: 'L@saltstack_web1group_1,saltstack_web1group_2'
[root@saltstack-master salt]# salt -N web1group test.ping
saltstack_web1group_2:
True
saltstack_web1group_1:
True
6)-C:--compound 根据条件运算符not、and、or去匹配不同规则的主机信息。
探测salt开头并且操作系统为Centos的主机连通性。
[root@saltstack-master salt]# salt -C 'E@^salt.* and G@os:Centos' test.ping
saltstack_web1group_1:
True
saltstack_web1group_2:
True
not语句不能作为第一个条件执行,不过可以通过以下方法来规避:
探测非saltstack开头的主机连通性;
[root@saltstack-master salt]# salt -C '* and not E@^Jenkins.*' test.ping
saltstack_web1group_2:
True
saltstack_web1group_1:
True
7)-S:--ipcidr 根据被控主机的ip地址或ip子网进行匹配。
查看是否匹配当前从设备是否处于192.168.0.0/16的网段;
[root@saltstack-master salt]# salt -S 192.168.0.0/ test.ping
saltstack_web1group_1:
True
saltstack_web1group_2:
True
利用 Saltstack 远程执行命令的更多相关文章
- Linux centosVMware 自动化运维认识自动化运维、启动salt相关服务、saltstack配置认证、salt-key命令用法、saltstack远程执行命令、saltstack - grains、saltstack – pillar
一.认识自动化运维 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维的脚本繁多,不能方便管理 自动化运维就是要解决上面所有问 ...
- saltstack远程执行命令.md
saltstack 支持在master上向client 远程执行命令,并显示命令执行的结果 命令格式: salt '<操作目标>' <方法> [参数] 示例 示例1 ping检 ...
- 网站apache环境S2-057漏洞 利用POC 远程执行命令漏洞复现
S2-057漏洞,于2018年8月22日被曝出,该Struts2 057漏洞存在远程执行系统的命令,尤其使用linux系统,apache环境,影响范围较大,危害性较高,如果被攻击者利用直接提权到服务器 ...
- Saltstack系列2:Saltstack远程执行命令
命令 命令格式: salt '<操作目标>' <方法>[参数] 例: salt 'wx' cmd.run 'free -m' #查看被控主机内存使用情况 常用参数 针对< ...
- SaltStack远程执行命令
编辑fansik_cmd.sls文件: 内容如下: fansik_cmd: cmd.run: - unless: - test -f /tmp/fansik.txt - t ...
- 利用scp 远程上传下载文件/文件夹和ssh远程执行命令
利用scp传输文件 1.从服务器下载文件scp username@servername:/path/filename /tmp/local_destination例如scp codinglog@192 ...
- 19 Zabbix 利用Scripts栏目对Hosts远程执行命令
点击返回:自学Zabbix之路 19 Zabbix 利用Scripts栏目对Hosts远程执行命令 在Monitoring板块中,有Host出现的地方,单击Host按钮后,都可以执行对Host远程执行 ...
- 20 Zabbix 利用Scripts栏目对Hosts远程执行命令
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 20 Zabbix 利用Scripts栏目对Hosts远程执行命令 在Monitoring板块中, ...
- CentOS下利用sshpass不用手动输入密码远程执行命令
在测试的时候要同时操作多台机器,每次都要挨个去执行几乎相同的命令或者修改一些设置,这样很影响工作效率也很烦,所以就想写一个脚本,远程自动去做这些操作.远程执行命令很简单,但是不能在执行命令加上命 ...
随机推荐
- Spring项目使用Junit4测试配置
我们经常要写junit测试,在不启动整个web项目的情况下,测试自己的service实现或者是dao实现,我们来充分利用下junit4的强大功能. 1.junit4的测试类 import java.u ...
- Angular记录(3)
文档资料 箭头函数--MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Arrow_fun ...
- 深入理解display属性——前端布局常用重要属性
小注:display属性在网页布局中非常常见,但经常用到的仅仅是block.inline-block.inline和none等寥寥几个属性值,下面本人将详细介绍display属性的各个方面 定义 di ...
- 四五月份:关键词是沟通、绘画和SQL
例行总结一下四五月份的感受. 关键词有三个:沟通.绘画和SQL. 整体来说,这两个月在努力跟这三个关键词死磕,略有些进展,因此汇报一下. 虽然这三个关键词从重要度来说是从左到右的,但从叙述来讲,还是先 ...
- 搭建微信小程序的本地测试服务器 json-server
1.首先需要在windows环境下安装node.js 选择 Windows Installer 下载对应的系统版本就行,然后一路next,这种方式安装好以后会把环境变量也配置好了,直接在命令行下输入 ...
- 【gitlab】gitlab快速部署教程
gitlab快速部署教程 部署环境 Ubuntu 16.04(亲测可用) 开始部署 安装依赖 sudo apt-get install curl openssh-server ca-certifica ...
- easyui 菜单树搜索
//树形菜单搜索方法 function searchTree(treeObj,parentNode,searchCon){ var children; for(var ...
- angular Observable
1.回调函数 /** 1.设计实现函数 */ print_msg(msg) { console.log(msg); } /** 2.设计调用函数,param1:实现函数参数,param2:实现函数本身 ...
- 2018-2019-2 20165221 【网络对抗技术】-- Exp6 信息搜集与漏洞扫描
2018-2019-2 20165221 [网络对抗技术]-- Exp6 信息搜集与漏洞扫描 目录 1. 实践目标 2. 实践内容 3. 各种搜索技巧的应用 a. 搜索网址的目录结构 b.使用IP路由 ...
- OnePlus5刷机后一直检查更新
大概是由于爱折腾,上一个手机是Nexus5,现在又是Oneplus5,闲来无事就爱刷机. 昨天看OnePlus官网的氧OS更新到Android9.0,于是又开启了刷机旅程. 显然这次没有之前那么顺利, ...