练习内容

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服务就生效

对目标服务器分组有以下七种方式,这七种方式的标示符分别为:

  1. G -- 针对 Grains 做单个匹配,例如:G@os:Ubuntu
  2. E -- 针对 minion 针对正则表达式做匹配,例如:E@web\d+.(dev|qa|prod).loc
  3. P -- 针对 Grains 做正则表达式匹配,例如:P@os:(RedHat|Fedora|CentOS)
  4. L -- 针对 minion 做列表匹配,例如:L@minion1.example.com,minion3.domain.com or bl*.domain.com
  5. I -- 针对 Pillar 做单个匹配,例如:I@pdata:foobar
  6. S -- 针对子网或是 IP 做匹配,例如:S@192.168.1.0/24 or S@192.168.1.100
  7. 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-第六篇的更多相关文章

  1. RabbitMQ学习总结 第六篇:Topic类型的exchange

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  2. Python之路【第六篇】:socket

    Python之路[第六篇]:socket   Socket socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字&quo ...

  3. “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成)

    “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成) 一.这篇文章主要是要实现:图片新闻的添加,无刷新图片的上传,以及添加新闻静 ...

  4. ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套

    这是ElasticSearch 2.4 版本系列的第六篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  5. SaltStack 入门到精通第二篇:Salt-master配置文件详解

    SaltStack 入门到精通第二篇:Salt-master配置文件详解     转自(coocla):http://blog.coocla.org/301.html 原本想要重新翻译salt-mas ...

  6. Mysql优化(出自官方文档) - 第六篇

    Mysql优化(出自官方文档) - 第六篇 目录 Mysql优化(出自官方文档) - 第六篇 Optimizing Subqueries, Derived Tables, View Reference ...

  7. 解剖SQLSERVER 第十六篇 OrcaMDF RawDatabase --MDF文件的瑞士军刀(译)

    解剖SQLSERVER 第十六篇 OrcaMDF RawDatabase --MDF文件的瑞士军刀(译) http://improve.dk/orcamdf-rawdatabase-a-swiss-a ...

  8. 解剖SQLSERVER 第六篇 对OrcaMDF的系统测试里避免regressions(译)

    解剖SQLSERVER 第六篇  对OrcaMDF的系统测试里避免regressions (译) http://improve.dk/avoiding-regressions-in-orcamdf-b ...

  9. Python之路【第十六篇】:Django【基础篇】

    Python之路[第十六篇]:Django[基础篇]   Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...

  10. 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单

    我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...

随机推荐

  1. R中K-Means、Clara、C-Means三种聚类的评估

    R中cluster中包含多种聚类算法,下面通过某个数据集,进行三种聚类算法的评估 # ============================ # 评估聚类 # # ================= ...

  2. 启动windows服务的bat文件编写格式

    1.bat文件需要和bin文件内容放在一起 启动服务的bat文件如下: sc create 邮件服务 binPath= "%~dp0可执行文件名称.exe" start= auto ...

  3. Spoken English Practice(I really hate to give her up, oh ,I know, you should take her.)

    色:连读:                  红色:略读:               蓝色:浊化:               橙色:弱读     下划线_为浊化 口语蜕变(2017/7/10) 英 ...

  4. 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… ...

  5. Java 使用阿里云短信的API接口

    亲们上午好,写的不好的地方还望指正.谢谢各位! 引言 短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等.(我这里只讲一个 ...

  6. Python 3.5 中的异步HTTP请求写法

    Python 3.5 增加了对async def and await的支持,同样的异步代码看起来干净了很多,也更易读. import aiohttp import asyncio async def ...

  7. Java8 中的时间和日期 API

    1. 日期和时间概述 LocalDate,LocalTime,LocalDateTime类的实例是不可变的对象,分别表示使用 ISO-8601 日历系统 的日期,时间,日期和时间;它们提供了简单的日期 ...

  8. django组件之ContentType

    ContentTyep组件: 帮助我们关联所有数据库的表 帮助我们反向查询关联数据表中的所有策略信息 GenericForeignkey(帮助我们快速插入数据) GenericRelation(用于反 ...

  9. Android集成百度地图SDK

    本Demo中所含功能 1:定位,显示当前位置 2:地图多覆盖物(地图描点.弹出该点的具体信息) 3:坐标地址互相换算 4:POI兴趣点检索 5:线路查询(步行,驾车,公交) 6:绘制线路(OpenGL ...

  10. HttpRunner 参数化数据驱动

    HttpRunner 2.0 参数化数据驱动案例,废话不说,直接上干货. 1.测试用例目录结构      api:接口集 testcases:测试用例    testsuites:测试套件 data: ...