Patterns 是定义Ansible要管理的主机。但是在playbook中它指的是对应主机应用特定的配置或IT流程。

命令格式

命令行

ansible <host-pattern> [options]

playbook 中

- hosts: <host-pattern>

  

使用示例

ansible \* -m service -a "name=httpd state=restarted"

  

Patterns 使用

匹配所有的主机

all
* # 命令行中使用 \进行转义
以上两个Patterns 均表示匹配所有的主机

精确匹配  

192.168.77.121
以上Patterns 表示只匹配192.168.77.121这一个主机

或匹配 

web:db
以上Patterns 表示匹配的主机在web组或db组中

非模式匹配

"web:\!db"
命令下需转义特殊符号,以上Patterns 表示匹配的主机在web组,不在db组中,包含在web组,又在db中的用户

交集匹配

"web:&db"
以上Patterns 表示匹配的主机同时在db组和dbservers组中

通配符匹配

web-*.com:dbserver
webserver[0]
webserver[0:25]
*表示所有字符,[0]表示组第一个成员,[0:25] 表示组第1个到第24个成员,类似python中得切片

正则表达式匹配

~(web|db).*\.example\.com
在开头的地方使用“~”,表示这是一个正则表达式

组合匹配

"webservers:dbservers:&staging:!phoenix"
在webservers 或者dbservers 组中,必须还存在于staging 组中,但是不在phoenix 组中

在ansible-palybook 命令中,你也可以使用变量来组成这样的表达式,但是你必须使用“-e”的选项来指定这个表达式

webservers:!{{excluded}}:&{{required}}

排除条件

只执行-l后的主机
ansible-playbook site.yml -l 192.168.77.129
ansible-playbook site.yml --l @retry_hosts.txt

Ansible 小手册系列 六(Patterns 匹配模式)的更多相关文章

  1. Ansible 小手册系列 十四(条件判断和循环)

    条件判断 When 语句 在when 后面使用Jinja2 表达式,结果为True则执行任务. tasks: - name: "shut down Debian flavored syste ...

  2. Ansible 小手册系列 十六(Playbook Debug)

    debug模块在执行期间打印语句,并且可用于调试变量或表达式,而不必停止playbook. 打印自定义的信息 - debug: msg="System {{ inventory_hostna ...

  3. Ansible 小手册系列 三(命令介绍)

    仅仅只是介绍,可以选择跳过 ansible ansible是指令核心部分,其主要用于执行ad-hoc命令,即单条命令.默认后面需要跟主机和选项部分,默认不指定模块时,使用的是command模块. Us ...

  4. Ansible 小手册系列 十九(常见指令表)

    Play 指令 说明 accelerate 开启加速模式 accelerate_ipv6 是否开启ipv6 accelerate_port 加速模式的端口 always_run   any_error ...

  5. Ansible 小手册系列 十七(特性模块)

    异步操作和轮询 --- # Requires ansible 1.8+ - name: 'YUM - fire and forget task' yum: name=docker-io state=i ...

  6. Ansible 小手册系列 十八(Lookup 插件)

    file:获取文件内容 --- - hosts: all vars: contents: "{{ lookup('file', '/etc/foo.txt') }}" tasks: ...

  7. Ansible 小手册系列 十三(Jinja2)

    用于playbook中的jinja 2过滤器 更改数据格式,其结果是字符串 {{ some_variable | to_json }} {{ some_variable | to_yaml }} 对于 ...

  8. Ansible 小手册系列 四(详解配置文件)

    [root@host-172-20-6-120 ansible]# ansible --version ansible 2.2.0.0 config file = /etc/ansible/ansib ...

  9. Ansible 小手册系列 二十(经常遇到的问题)

    (1). 怎么为任务设置环境变量? - name: set environment shell: echo $PATH $SOME >> /tmp/a.txt environment: P ...

随机推荐

  1. javascript 类型 内存

    ecmscript中包含两种类型 基本类型值         引用类型值(对象) 按值传递和按引用传递 function test ($num) {   //按值传递,JavaScript中没有按引用 ...

  2. ACM-ICPC 2018 南京赛区网络预赛 G. Lpl and Energy-saving Lamps (弱线段树)

    线段树节点维护区间最小值,查找时优先从左侧的区间寻找. 每一次循环都在树中不停寻找第一个小于等于当前持有数的值,然后抹去,直到找不到为止. #include<cstdio> #includ ...

  3. 解决Ubuntu sudo apt-get install遇到的E: Sub-process /usr/bin/dpkg returned an error code (1)问题

    如题,本人在安装samba等软件的时候,在命令行敲入: sudo apt-get install samba4命令的时候,系统在下载之后报错,大致内容如下: ~$ sudo apt-get insta ...

  4. 如何通过包名打开手机里的APP

    目前已知的打开APP的方式有两种, 一种是通过openUrl打开,这种有一个严重的问题,即必须添加白名单,白名单之外的APP即时安装了也无法打开. 另一种就是今天的重点,通过包名打开APP.先上核心代 ...

  5. ipython安装(python3.6.1)

    之前一直是在Python2.7环境下装的ipython,今天想在Python3环境下安装,主要是为了方便测试,按tab键可以补全,显示导入模块的方法. 1.首先安装Python3.6.1 wget h ...

  6. Vuejs开发环境搭建及热更新

    一.安装NPM 1.1最新稳定版本: npm install vue 二.命令行工具安装 国内速度慢,使用淘宝镜像: npm install -g cnpm --registry=https://re ...

  7. php面向对象类中常用的魔术方法

    php面向对象类中常用的魔术方法   1.__construct():构造方法,当类被实例化new $class时被自动调用的方法,在类的继承中可以继承与覆盖该方法,例: //__construct( ...

  8. jQuery中this 和 $(this)

    var node = $('#id'); node.click(function(){ this.css('display','block'); //报错  this是一个html元素,不是jquer ...

  9. Statement与PreparedStatement

    Statement 用于通用查询,能批处理 PreparedStatement(简称PS) 用于执行参数化查询,能批处理 什么是参数化查询? 指在设计与数据库链接并访问数据时,在需要填入数值或数据的地 ...

  10. 自制mysql的rpm包

    MySQL安装一般使用RPM或者源码安装的方式.RPM安装的优点是快速,方便.缺点是不能自定义安装目录.如果需要调整数据文件和日志文件的存放位置,还需要进行一些手动调整.源码安装的优点是可以自定义安装 ...