Ansible 之 Patterns

1.Ansible中的Patterns决定了我们要管理哪个主机,意思是与哪些主机进行交互。

我们将在Ad-Hoc(Ad-Hoc 是指 临时执行的命令,要结合着模块进行使用,可通过ansible-doc -l查看模块的列表)命令行中进行介绍,

本文中,ansible 的hosts 清单文件内容如下:

[root@docker ~]# cat /etc/ansible/hosts
[centos_group]
172.17.0.2
172.17.0.3 [webserver]
web1 ansible_port= ansible_host=172.17.0.4
172.17.0.3 [centos:children]
centos_group
webserver

先看下命令行模式的语法:

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

示例:

[root@docker ~]# ansible webserver -m shell -a "date"
web1 | SUCCESS | rc= >>
Mon Feb :: CST

-m 模块名,默认不指定,使用的是command 模块。
-a 模块参数,可通过 `ansible-doc 模块名` 查看具体使用方法

在上面的示例中 pattern_goes_here 指的是webserver 组中的计算机,

下面的两条命令中的patterns 等价于使用清单中内的所有主机

[root@docker ~]# ansible "*" -m shell -a "date"
[root@docker ~]# ansible all -m shell -a "date"

也可以按指定ip地址,如:

[root@docker ~]# ansible 172.17.0.2 -m ping
172.17.0.2 | SUCCESS => {
"changed": false,
"ping": "pong"
}
[root@docker ~]# ansible 172.17..* -m ping
172.17.0.3 | SUCCESS => {
"changed": false,
"ping": "pong"
}
172.17.0.2 | SUCCESS => {
"changed": false,
"ping": "pong"
}

有个有趣的小发现,不知当桨不当桨。ping 对应的是 pong,是乒乓的意思么?

patterns 是一个组,也可用 冒号:分割,添加另外一个组,表示主机可以在这个组或者另一组中。

如下:

[root@docker ~]# ansible centos_group:webserver -m ping
172.17.0.3 | SUCCESS => {
"changed": false,
"ping": "pong"
}
web1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
172.17.0.2 | SUCCESS => {
"changed": false,
"ping": "pong"
}

也可以排除某个组相同的主机,如所有计算机必须在centos_group组中 且不在webserver 组中,用 :!来表示(!、& 会被bash 解释,所以需要加转义符),如下:

[root@docker ~]# ansible centos_group:\!webserver -m ping
172.17.0.2 | SUCCESS => {
"changed": false,
"ping": "pong"
}

还可以指定两个组的交集,意味着主机必须即在webserver 组中,又在centos_group组中,用:& 表示,如下:

[root@docker ~]# ansible centos_group:\&webserver -m ping
172.17.0.3 | SUCCESS => {
"changed": false,
"ping": "pong"
}

另外也可以根据数组下标来选择组内的主机,如下:

[root@docker ~]# ansible centos_group[] -m ping
172.17.0.2 | SUCCESS => {
"changed": false,
"ping": "pong"
}

当然,还有高级的用法,如利用通配符,以及正则的方式来匹配主机。

等下再来学习Ad-Hoc 命令的使用吧。

注:本文属于飞走不可原创,如有转载,请务必在文首注明出处。飞走不可:=_= http://www.cnblogs.com/hanyifeng/p/6193249.html

Ansible 系列之 Patterns的更多相关文章

  1. Ansible系列(二):选项和常用模块

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  2. Ansible系列(一):基本配置和使用

    本文目录:1.1 安装Ansible1.2 配置Ansible 1.2.1 环境配置 1.2.2 SSH互信配置 1.2.3 简单测试1.3 inventory Ansible是一种批量.自动部署工具 ...

  3. Ansible系列(五):playbook应用和roles自动化批量安装示例

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  4. Ansible系列(六):各种变量定义方式和变量引用

    本文目录:1.1 ansible facts1.2 变量引用json数据的方式 1.2.1 引用json字典数据的方式 1.2.2 引用json数组数据的方式 1.2.3 引用facts数据1.3 设 ...

  5. Ansible系列(三):YAML语法和playbook写法

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  6. Ansible系列(六):循环和条件判断

    本文目录:1. 循环 1.1 with_items迭代列表 1.2 with_dict迭代字典项 1.3 with_fileglob迭代文件 1.4 with_lines迭代行 1.5 with_ne ...

  7. Ansible系列(七):执行过程分析、异步模式和速度优化

    本文目录:1.1 ansible执行过程分析1.2 ansible并发和异步1.3 ansible的-t选项妙用1.4 优化ansible速度 1.4.1 设置ansible开启ssh长连接 1.4. ...

  8. Ansible系列(四):playbook应用和roles自动化批量安装示例

    Ansible系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html playbook是ansible实现批量自动化最重要的手段.在其中可以使用变 ...

  9. Ansible系列(五):各种变量定义方式和变量引用

    Ansible系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1.1 ansible facts facts组件是用来收集被管理节点信息的 ...

随机推荐

  1. javascript文档节点

    创建文本节点 document.createTextNode() 创建新文本节点,该方法接收一个参数,即要插入节点中的文本信息. <script> //创建一个div节点 var elem ...

  2. wkwebview加载本地html的要点

    项目中有些页面,我采用了html页面开发,然后用wkwebview加载的设计.在加载过程中遇见了一些问题,在这里进行一些记载和讨论.如有不同意见欢迎进行评论沟通. 问题时候这样的: 在webview的 ...

  3. cinder块存储 后端采用lvm、nfs安装配置

    #cinder块存储 后端采用lvm.nfs安装配置 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html #cinder ...

  4. HDU1018-Big Number

    Big Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  5. 【OCR技术系列之二】文字定位与切割

    要做文字识别,第一步要考虑的就是怎么将每一个字符从图片中切割下来,然后才可以送入我们设计好的模型进行字符识别.现在就以下面这张图片为例,说一说最一般的字符切割的步骤是哪些. 当然,我们实际上要识别的图 ...

  6. 【算法】字典的诞生:有序数组 PK 无序链表

    参考资料 <算法(java)>                           — — Robert Sedgewick, Kevin Wayne <数据结构>       ...

  7. Qt---自定义界面之QStyle

    最近想学习下Qt的自定义界面,因此花了点时间看了下QStyle,,,,结果很难受,这一块涉及到一大块GUI的具体实现方式,看得我很头疼.想看第一手资料并且英语功底不错的可以直接上qt文档,下面我会以易 ...

  8. 200行Java代码搞定计算器程序

    发现了大学时候写的计算器小程序,还有个图形界面,能够图形化展示表达式语法树,哈哈;) 只有200行Java代码,不但能够计算加减乘除,还能够匹配小括号~ 代码点评: 从朴素的界面配色到简单易懂错误提示 ...

  9. iscroll使用之页面卡顿问题

    最近在开发项目时,遇到一个问题,使用iscroll实现的页面滚动,测试时发现在chrome浏览器中的模拟移动设备页面不能平滑滚动,有卡顿现象,在android手机端也有同样的问题. 在github上搜 ...

  10. linux crontab yum安装

    crontab工具来做计划任务,定时任务,执行某个脚本等等 1.检查是否已安装crontab # crontab -bash: crontab: command not found 执行 cronta ...