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. idea中异常处理快捷键

    键盘按下 alt+Enter 一般选择try/catch这一个

  2. vue 将时间戳转换成日期格式 (一)

    (1)创建一个处理时间格式的js,内容如下: ../../utils/formatDate.js export function formatDate(date, fmt) { if (/(y+)/. ...

  3. 开源项目hutool之zip_slip漏洞

    今天突然看到了去年写的一篇漏洞分析文章,搬到博客上 ---------------- Hutool是Github上的一个开源项目,是一个java的工具包,对文件.流.加密解密.转码.正则.线程.XML ...

  4. UNIX常用shell

    /bin/sh Bourne shell 它是Unix的默认Shell,也是其它Shell的开发基础.Bourne Shell在编程方面相当优秀,但在处理与用户的交互方面不如其它几种Shell /bi ...

  5. 采集代理ip 地址【西刺,快代理】

    # 嗯,...因为经常需要使用代理去抓一点东西,就有了下面一段代码,第一版不是很好,后面用到了再来优化 import re,pymysql,time,redis from urllib.request ...

  6. 网站seo搜索引擎优化

    SEO综合查询方式:http://seo.chinaz.com/网站地址(一般为域名地址),比如:http://seo.chinaz.com/www.test.com 搜索关键字(keywords)优 ...

  7. SQL SERVER-孤立用户

    --SQL SERVER用户管理分为两层,实例级的login和数据库级的用户 --login的SID和数据库用户的SID必须一样才行 --数据库搬迁login在重建时生成新的sid,与原来数据库的用户 ...

  8. springboot系列(六) 使用模板引擎

    这里就转载一篇大牛的文章 https://blog.csdn.net/caychen/article/details/79625927 这篇文章详细介绍了thymeleaf和freemarker引擎木 ...

  9. Python面向对象Day1

    一.面向对象初始 面向过程变成属于流水式 面向对象是一种思想 结构上理解面向对象:两部分 class A: # 类 name = '小明' # 静态属性,静态变量,静态字段,或者属性.变量.字段 de ...

  10. C语言二级指针底层实现

    C语言中,Pointers to Pointers,即二级指针. 一级指针和二级指针的值都是指向一个内存单元: 一级指针指向的内存单元存放的是源变量的值, 二级指针指向的内存单元存放的是一级指针的地址 ...