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. The Art Of Loving

    The Art Of Loving 来源 https://www.zhihu.com/question/23720541 ----------------------------- 茫然的蒲公英 有书 ...

  2. kvm第二章--虚拟机管理

  3. web框架(1)-搭建开发环境

    一.python安装 首先,确认系统安装的Python版本 $ python3 -V Python 3.6.3 未安装python,请转至:python安装 二.安装第三方依赖库 1.异步框架aioh ...

  4. mysql案例分析

    工作中,需要设计一个数据库存储,项目的需求大致如下: (1)对于每个用户,需要存储一个或多个库, 每个库, 由一个用户标识来标识,这里成为clientFlag. (2) 对于每一个库,结构如下: 1) ...

  5. 【DRF框架】版本控制组件

    DRF框架提供的版本控制组件 核心代码:           version, scheme = self.determine_version(request, *args, **kwargs)req ...

  6. Windows Server 2008搭建单域环境

    前言 一个典型的单域环境由主机,DC(Domain Controller域控制器).DNS服务器组成.DNS.DC都可以有多个,以实现负载均衡和容错 域中的计算机通过DNS解析域控制器,然后向域控制器 ...

  7. Cknife流量分析

    本文首发:https://<img src=1 onerror=\u006coc\u0061tion='j\x61v\x61script:\x61lert\x281\x29'>testde ...

  8. ElasticSearch 连载二 中文分词

    ElasticSearch 连载二 中文分词 上一章ElasticSearch 连载一 基础入门 对Elastic的概念.安装以及基础操作进行了介绍. 那是不是有童鞋会有以下几个问题呢? 什么是中文分 ...

  9. jstack、jmc、jhat工具使用详解

    jstack: 在上一次[https://www.cnblogs.com/webor2006/p/10669472.html]jcmd中也可以获取线程的堆栈信息,回顾一下: 其实在JDK中还有另一个专 ...

  10. 【恐怖的数组模拟】Secret Poems - HihoCoder - 1632

    Secret Poems - HihoCoder - 1632 图一 图二 Following the order indicated by arrows, you can get “THISISAV ...