zoukankan      html  css  js  c++  java
  • Ansible之路——第六章:通配模式Patterns

    在Ansible 中,Patterns 意味着要管理哪些机器,在playbooks 中,意味着哪些主机需要应用特定的配置或者过程。

    6.1 命令格式:

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

    比如我们的主机列表配置为:

     则有命令:

    ansible nova -m ping

    模式通常用主机组来表示,上面的命令就代表针对nova 组的所有主机。

    注:ansible不能操作没有在Inventory中定义过的主机。

     

    6.2 全量匹配:

    说明:匹配所有主机,all或者*号,两个功能相同,只是*号需要使用引号引起来(单双引号都可以)。

    // 匹配所有主机

    ansible all -m ping
    ansible "*" -m ping

    // 匹配某个网段

    ansible 10.152.35.* -m ping
    

     

    6.3 逻辑或(or)匹配

    如希望对多个主机或者多个组进行执行,组名之间通过冒号隔开,表示“OR”的意思,意思是这两个组中的所有主机

    ansible  nova:ironic  -m ping

     

    6.4 逻辑非(!)匹配

    主要针对多重条件的匹配规则。

    //所有在nova里面的机器,但不在compute里面的机器被匹配到。需要使用单引号。

    ansible  'nova:!compute'  -m ping

    不使用引号或者使用双引号会报错。

    6.5 逻辑与(&)匹配

    针对多重条件的匹配。

    //nova和compute组中同时存在的机器。(单双引号都可以)

    ansible  'nova:&compute'  -m ping

    6.6 组合匹配

    //nova组和ironic组中的所有机器,同时在bm组中存在,但不在compute组中。

    6.7 模糊匹配

    *通配符表示0个或者多个任意字符,主要用于一些模糊匹配。

    //所有以192.168开头的主机

    ansible 192.168.* -m ping

    6.8 域切割或者索引

    Ansible底层基于Python,因此也支持域切割,eg:

     

    也可以指定组中特定范围的主机,[x-y]这种形式已经不推荐使用了,推荐使用[x:y]。

     

    6.9正则匹配

    //以~开始表示正则匹配。

    ~(nova|ironic).*.example.com  (需要单或双引号)

    如:

     

    检测以192.168开头的主机

    ansible ~192.168.[0-9].[0-9]{2} -m ping

    6.10 指定主机执行

    在/usr/bin/ansible 和/usr/bin/ansible-playbook 中,还可以通过一个参数”--limit来明确指定某些主机或组。

     

    从Ansible1.2 开始,如果想要指定一个文件中的主机可以使用”@”,这样只操作该文件中的主机。如果指定多个文件,则用逗号分隔:

     

     

    天道酬勤
  • 相关阅读:
    linux sed命令详解
    SQL注入基础知识
    DC-7
    DC-6
    DC-5
    DC-4
    DC-3
    DC-2
    pentestlabs
    任意文件读取和下载
  • 原文地址:https://www.cnblogs.com/wangwei1/p/12854739.html
Copyright © 2011-2022 走看看