SaltStack匹配target-第六篇
练习内容
Salt远程执行中目标选择常用的模式
1.通配符匹配
2.正则表达式匹配
3.List支持
4.Grains匹配
5.IP地址匹配
6.混合匹配
7.Node groups
远程执行格式
target就是我们要选择的minion
salt '<target>' <function> [arguments]
一,通配符匹配,支持minon_id
[root@linux-node1 salt]# salt "*" test.ping
linux-node1.example.com:
True
linux-node2.example.com:
True
[root@linux-node1 salt]# salt "*node1*" test.ping
linux-node1.example.com:
True
二,正则表达式,同样也支持在状态文件里面使用
[root@linux-node1 salt]# salt -E "linux-node[0-1].example.com" test.ping
linux-node1.example.com:
True
[root@linux-node1 salt]# salt -E "linux-node[0-2].example.com" test.ping
linux-node1.example.com:
True
linux-node2.example.com:
True
三,List支持
[root@linux-node1 salt]# salt -L "linux-node1.example.com,linux-node2.example.com" "test.ping"
linux-node2.example.com:
True
linux-node1.example.com:
True
四,Grains匹配
[root@linux-node1 salt]# salt -G 'os:CentOS' test.ping
linux-node1.example.com:
True
linux-node2.example.com:
True [root@linux-node1 salt]# salt -G 'cpuarch:x86_64' test.ping
linux-node1.example.com:
True
linux-node2.example.com:
True
五,IP地址匹配
root@linux-node1 salt]# salt -S "192.168.56.0/255.255.255.0" test.ping #注意不支持 255.255.255.0子网掩码写法
No minions matched the target. No command was sent, no jid was assigned.
ERROR: No return received
[root@linux-node1 salt]# salt -S "192.168.56.0/24" test.ping
linux-node1.example.com:
True
linux-node2.example.com:
True
[root@linux-node1 salt]# salt -S "192.168.56.11" test.ping
linux-node1.example.com:
True
六,混合匹配(不建议使用,看起来有些乱)
[root@linux-node1 salt]# salt -C 'S@192.168.56.11 or E@linux-node[0-2].example.com' test.ping
linux-node1.example.com:
True
linux-node2.example.com:
True
七,Node groups方式需要写在Master配置文件里面,不需要重启salt-master服务就生效
对目标服务器分组有以下七种方式,这七种方式的标示符分别为:
- G -- 针对 Grains 做单个匹配,例如:G@os:Ubuntu
- E -- 针对 minion 针对正则表达式做匹配,例如:E@web\d+.(dev|qa|prod).loc
- P -- 针对 Grains 做正则表达式匹配,例如:P@os:(RedHat|Fedora|CentOS)
- L -- 针对 minion 做列表匹配,例如:L@minion1.example.com,minion3.domain.com or bl*.domain.com
- I -- 针对 Pillar 做单个匹配,例如:I@pdata:foobar
- S -- 针对子网或是 IP 做匹配,例如:S@192.168.1.0/24 or S@192.168.1.100
- R -- 针对客户端范围做匹配,例如: R@%foo.bar
nodegroups:
group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'
group2: 'G@os:Debian and foo.domain.com'
group3: 'G@os:Debian and N@group1'
有时候因为minion的版本问题是要nodegroups会报错如下
[DEBUG ] Passing on saltutil error. This may be an error in saltclient. 'retcode'
这时候可以升级minion客户端解决问题
yum install https://repo.saltstack.com/yum/redhat/salt-repo-2017.7-1.el7.noarch.rpm #安装最新的源
升级minion客户端,重启minion就可以解决问题
yum install salt-minion -y
总结
1.混合匹配不建议使用,看起来有些乱
2.List模式在平时维护的时候用的少,但是在二次开发建议用Grains采集到数据,然后select拼接成list再调用后端api去执行
3.控制并发可以使用 batch size,简写 -b 如果是1就串行,也支持百分比如 -b 50%
[root@linux-node1 salt]# salt '*' -b test.ping Executing run on ['linux-node2.example.com'] linux-node2.example.com:
True
retcode: Executing run on ['linux-node1.example.com'] linux-node1.example.com:
True
retcode:
百分比使用方法
[root@linux-node1 salt]# salt '*' -b % test.ping Executing run on ['linux-node2.example.com'] linux-node2.example.com:
True
retcode: Executing run on ['linux-node1.example.com'] linux-node1.example.com:
True
retcode:
附:英文参考文档
https://www.unixhot.com/docs/saltstack/topics/tutorials/modules.html#target
https://www.unixhot.com/docs/saltstack/topics/targeting/index.html
SaltStack匹配target-第六篇的更多相关文章
- RabbitMQ学习总结 第六篇:Topic类型的exchange
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
- Python之路【第六篇】:socket
Python之路[第六篇]:socket Socket socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字&quo ...
- “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成)
“MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成) 一.这篇文章主要是要实现:图片新闻的添加,无刷新图片的上传,以及添加新闻静 ...
- ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套
这是ElasticSearch 2.4 版本系列的第六篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
- SaltStack 入门到精通第二篇:Salt-master配置文件详解
SaltStack 入门到精通第二篇:Salt-master配置文件详解 转自(coocla):http://blog.coocla.org/301.html 原本想要重新翻译salt-mas ...
- Mysql优化(出自官方文档) - 第六篇
Mysql优化(出自官方文档) - 第六篇 目录 Mysql优化(出自官方文档) - 第六篇 Optimizing Subqueries, Derived Tables, View Reference ...
- 解剖SQLSERVER 第十六篇 OrcaMDF RawDatabase --MDF文件的瑞士军刀(译)
解剖SQLSERVER 第十六篇 OrcaMDF RawDatabase --MDF文件的瑞士军刀(译) http://improve.dk/orcamdf-rawdatabase-a-swiss-a ...
- 解剖SQLSERVER 第六篇 对OrcaMDF的系统测试里避免regressions(译)
解剖SQLSERVER 第六篇 对OrcaMDF的系统测试里避免regressions (译) http://improve.dk/avoiding-regressions-in-orcamdf-b ...
- Python之路【第十六篇】:Django【基础篇】
Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...
- 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单
我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...
随机推荐
- R中K-Means、Clara、C-Means三种聚类的评估
R中cluster中包含多种聚类算法,下面通过某个数据集,进行三种聚类算法的评估 # ============================ # 评估聚类 # # ================= ...
- 启动windows服务的bat文件编写格式
1.bat文件需要和bin文件内容放在一起 启动服务的bat文件如下: sc create 邮件服务 binPath= "%~dp0可执行文件名称.exe" start= auto ...
- Spoken English Practice(I really hate to give her up, oh ,I know, you should take her.)
色:连读: 红色:略读: 蓝色:浊化: 橙色:弱读 下划线_为浊化 口语蜕变(2017/7/10) 英 ...
- 2017 Multi-University Training Contest - Team 1—HDU6044
Limited Permutation 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6044 题意:现在有一个排列p1,p2,p3,p4,p5,p6… ...
- Java 使用阿里云短信的API接口
亲们上午好,写的不好的地方还望指正.谢谢各位! 引言 短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等.(我这里只讲一个 ...
- Python 3.5 中的异步HTTP请求写法
Python 3.5 增加了对async def and await的支持,同样的异步代码看起来干净了很多,也更易读. import aiohttp import asyncio async def ...
- Java8 中的时间和日期 API
1. 日期和时间概述 LocalDate,LocalTime,LocalDateTime类的实例是不可变的对象,分别表示使用 ISO-8601 日历系统 的日期,时间,日期和时间;它们提供了简单的日期 ...
- django组件之ContentType
ContentTyep组件: 帮助我们关联所有数据库的表 帮助我们反向查询关联数据表中的所有策略信息 GenericForeignkey(帮助我们快速插入数据) GenericRelation(用于反 ...
- Android集成百度地图SDK
本Demo中所含功能 1:定位,显示当前位置 2:地图多覆盖物(地图描点.弹出该点的具体信息) 3:坐标地址互相换算 4:POI兴趣点检索 5:线路查询(步行,驾车,公交) 6:绘制线路(OpenGL ...
- HttpRunner 参数化数据驱动
HttpRunner 2.0 参数化数据驱动案例,废话不说,直接上干货. 1.测试用例目录结构 api:接口集 testcases:测试用例 testsuites:测试套件 data: ...