ansible <pattern> -m <module_name> -a <arguments>

该功能主要针对Inventory的主机列表,案例如下:

1、ALL(全量匹配)

说明:匹配所有主机,all或者*号,两个功能相同,只是*号需要使用双引号引起来。

// 匹配所有主机
ansible all -m ping
ansible "*" -m ping

// 匹配某个网段
ansible 192.168.4.* -m ping

2、逻辑或(or)匹配

如希望对多个主机或者多个组进行执行,相互之间用冒号分割。

ansible  192.168.4.46:192.168.4.50 -m ping

3、逻辑非(!)匹配

主要针对多重条件的匹配规则。

//所有在zookeeper里面的机器,但不在hadoop里面的机器被匹配到。需要使用单引号。
ansible 'zookeeper:!hadoop' -m ping
不使用引号或者使用单引号会报错。

[root@manager1 data 10:51:57]#ansible 'zookeeper:!hadoop' -m ping
192.168.4.46 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
[root@manager1 data 10:52:41]#ansible "zookeeper:!hadoop" -m ping
-bash: !hadoop": event not found
[root@manager1 data 10:53:45]#ansible zookeeper:!hadoop -m ping
-bash: !hadoop: event not found

4、逻辑与(&)匹配

针对多重条件的匹配。

//zookeeper组和hadoop组中同时存在的机器。需要引号(单引号,双引号都行。)
ansible "zookeeper:&hadoop" -m ping

5、多条件组合

//webservers和dbservers两个组中的所有机器在staging组中存在,但不存在与phoenix。
ansible 'webservers:dbservers:&staging:!phoenix' -m ping

6、模糊匹配

*通配符表示0个或者多个任意字符,主要用于一些模糊匹配。

//所有以192.168开头的主机
ansible 192.168.* -m ping

7、域切割或者索引

Ansible底层基于Python,因此也支持域切割,eg:

//主机清单配置如下:
[webservers]
cobweb
webbing
weber
通过截取数组下标可以获得对应的变量值
webservers[0] # ==cobwb
webservers[-1] #==weber

8、正则匹配

//~开始表示正则匹配。
~(web|db).*\.example\.com
检测以192.168开头的主机
ansible ~192\.168\.[0-9]\.[0-9]\{\2} -m ping

ansible 主机正则的更多相关文章

  1. Django + Ansible 主机管理(有源码)

    本文给大家介绍如何利用 Django + Ansible 进行 Web 项目管理.   Django介绍 一个可以使 Web 开发工作愉快并且高效的 Web 开发框架,能够以最小的代价构建和维护高质量 ...

  2. Ansible主机清单Inventory文件hosts

    Ansible主机清单Inventory文件hosts 发表于 2017-05-14 | 分类于 运维相关 , Ansible | | 阅读次数 4638 | 字数统计 1,442 | 阅读时长预计 ...

  3. ansible主机组配置及秘钥分发

    ansible主机组配置及秘钥分发 ansible主机组文件位于/etc/ansible/hosts文件中 1 hosts主机经常使用到的变量为: 2 ansible_ssh_host #用于指定被管 ...

  4. 四、ansible主机组定义

    1.打开hosts文件 vim /etc/ansible/hosts 2.定义一个主机组 [web-server] 192.168.1.1 3.定义多个组(继承) [web:children] web ...

  5. (2)ansible主机清单文件inventory

    1)inventory作用 作用:通常用于定义要管理主机的认证信息,例如ssh登录用户名,密码等相关信息 缺省文件:/etc/ansible/hosts 2)定义主机组方式 #vim /etc/ans ...

  6. ansible 主机清单 /etc/ansible/hosts

    主机清单 [webservers] ansible01 ansible02 ansible03 ansible04 [root@ftp:/root] > ansible webservers - ...

  7. 细说Ansible主机清单inventory

    Ansible是一个系列文章,我会尽量以通俗易懂.诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些. Ansible系列博文直达链接:Ansible入门系列 前言 关于Ansible是 ...

  8. ansible主机互信

    前文讲了ansible,但是ansible是基于ssh来做的,首先的和管理主机之间做主机互信,简单来说主机互信就是把主机上产生的公钥传到互信主机上就可以了. 在主机上产生公钥文件.使用命令:ssh-k ...

  9. ansible 二主机和组

    主机清单的管理 Ansible安装好之后的主机清单配置文件有如下两种: 1.yum安装,配置文件默认路径为: /etc/ansible/hosts 2.源码包安装,主机清单配置文件路径需要从软件包里面 ...

随机推荐

  1. 《程序是怎样跑起来的》读书笔记——第一章 对程序员来说CPU是什么

    1 程序的运行流程 2 CPU的组成 3 寄存器的主要种类和功能 "程序计数器"--决定程序流程的 4 条件分支和循环机制 4.1 顺序执行 4.2 选择分支 5 函数的调用机制 ...

  2. PimaIndiansdiabetes-数据预处理实验(一)

    有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10859517.html 链接:https:// ...

  3. Cron 定时任务表达式

    Cron Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth M ...

  4. linux跳板机开发之trap信号机应用

    场景1:公司新招聘了一个配置管理员,他的工作是负责将公司开发人员写的新代码依次分发到办公室测试环境.IDC测试环境和正式线上环境.因此公司需要开发一个程序,当配置管理员登录服务器,只能进入分发的管理界 ...

  5. jenkins中的流水线( pipeline)的理解(未完)

    目录 一.理论概述 Jenkins流水线的发展历程 什么是Jenkins流水线 一.理论概述 pipeline是流水线的英文释义,文档中统一称为流水线 Jenkins流水线的发展历程 ​ 在Jenki ...

  6. unittest 运行slenium(一)---创建配置类

    文章主要是创建: log : 日志文件 excel :文档的读写 ini 及 yaml :文件的读取 一:创建log日志文件 主要是对logging框架进行二次封装并输出自己需要的日志格式 1. 首先 ...

  7. Python中的时间

    coding:utf-8 from time import strftime, localtime import time print(time.time()) time1=strftime('%Y- ...

  8. Go语言的反射

    反射是语言里面是非常重要的一个特性,我们经常会看见这个词,但是对于反射没有一个很好的理解,主要是因为对于反射的使用场景不太熟悉. 一.理解变量的内在机制 1.类型信息,元信息,是预先定义好的,静态的. ...

  9. G1垃圾收集器堆内存划分与角色分派【纯理论】

    接着上一次[https://www.cnblogs.com/webor2006/p/11123522.html]G1学习继续开启理论之旅.. G1的设计规划是要替换掉CMS[理想化的] G1在某些方面 ...

  10. 【搜索/tarjan找环】zznu-简单环路

    简单环路 题目描述 有一个N x M 大小的地图,地图中的每个单元包含一个大写字母. 若两个相邻的(这里的相邻指“上下左右”相邻)点上的字母相同,我们可以用线段连接这两个点. 若存在一个包含同一字母的 ...