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. springboot_4 spring boot 使用servlet,filter,listener和interceptor

    上一篇我们学习了 spring boot 利用Controller响应数据与响应页面. 一般的Web开发使用 Controller 基本上可以完成大部分需求,但是有的时候我们还是会用到 Servlet ...

  2. Python中函数的知识点

    1.函数的定义与调用 2.函数的参数 3.函数的返回值   1. 1.1.函数的定义: 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 1.2.定义一个函数: 规则: 函数代码块以 ...

  3. iOS NSNotification传递带参数的通知

    普通的通知使用 注册观察者 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNotificat ...

  4. laravel模型关联评论

    用户模型 public function show(Post $post,LogManager $log){ $post->load("comments"); //这种方式是 ...

  5. Windows 如何录屏

    从Windows10开始,Windows开始自带了录屏功能(XBOX附带的).本来是方便游戏录制,但日常的录制也不在话下. 快捷键:Win + G 打开XBOX的录制工具 在打开录制工具后 Win + ...

  6. 【转】如何在TensorFlow中高效使用数据集

    本文主要记录tensorflow一个比较好用的API:Dataset,feed-dict 是向 TensorFlow 传递信息最慢的方式,应该尽量避免使用.向模型提供数据的正确方式是使用输入管道,这样 ...

  7. SASS 和 LESS 的区别

    1.编译环境不同 SASS 的安装需要 Ruby 环境,是在服务端处理的: LESS 需要引入 less.js 来处理代码输出 CSS 到浏览器,也可以在开发环节使用 LESS,然后编译成 CSS 文 ...

  8. Bootstrap 基本模板

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...

  9. Socket实现client和server端通信(Java)(转)

    转自: https://blog.csdn.net/yayun0516/article/details/50819147 https://www.jianshu.com/p/2d4f223f1462 ...

  10. python easygui用法

    一个简单的例子 在 EasyGui 中,所有的 GUI 互动均是通过简单的函数调用,下边一个简单的例子告诉你 EasyGui 确实很 Easy! import easygui as g import ...