ansible2:配置清单详解


说明

  ansible配置清单(inventory)可以使用ini或者yaml语法编写,yaml编写方式略微麻烦,但不能因为麻烦就不去学习,因为后续的ansible-playbook只能用yaml格式编写,下面进行一些举例对比说明。

普通组

  1. 第一篇文章中有说用all去管理清单中所有的主机,all的两种写法如下。

    # ini格式编写:
      0 14:28:12 root@ck-ansible,172.16.2.9:~ # cat /etc/ansible/hosts
    ck-node1
    ck-node2
    ck-node3
    # yaml格式编写: 
      0 14:30:14 root@ck-ansible,172.16.2.9:~ # cat /etc/ansible/hosts
    all:
      hosts:
        ck-node1:
        ck-node2:
        ck-node3:
      0 14:30:18 root@ck-ansible,172.16.2.9:~ # ansible all -m ping
    
  2. 当然我们也可以细分为多个小组,然后通过组名去管理组内所有主机。

    # ini格式编写:
      0 14:37:36 root@ck-ansible,172.16.2.9:~ # cat /etc/ansible/hosts
    ck-node1
    
    [dev]
    ck-node2
    
    [fat]
    ck-node3
    # yaml格式编写:
      0 14:40:32 root@ck-ansible,172.16.2.9:~ # cat /etc/ansible/hosts
    all:
      hosts:
        ck-node1:
      children:
        dev:
          hosts:
            ck-node2:
        fat:
          hosts:
            ck-node3:
    

嵌套组

  1. 当我们生产环境有多条业务线的时候,会用到嵌套组。

    # ini格式编写:
      0 14:44:39 root@ck-ansible,172.16.2.9:~ # cat /etc/ansible/hosts
    [pro1]
    ck-node1
    ck-node2
    
    [pro2]
    ck-node3
    
    [pro:children]
    pro1
    pro2
    # yaml格式编写:
      0 14:44:43 root@ck-ansible,172.16.2.9:~ # cat /etc/ansible/hosts
    all:
      children:
        pro:
          children:
            pro1:
              hosts:
                ck-node1:
                ck-node2:
            pro2:
              hosts:
                ck-node3:
    

别名

  1. 第一篇文章还介绍了别名的配置方式。

    # ini格式编写(常用):
      0 14:49:59 root@ck-ansible,172.16.2.9:~ # cat /etc/ansible/hosts
    ck-node1	ansible_host=172.16.15.21
    # yaml格式编写:
      0 14:59:09 root@ck-ansible,172.16.2.9:~ # cat /etc/ansible/hosts
    all:
      hosts:
        ck-node1:
          ansible_host: 172.16.15.21		# 注意冒号后面是有一个空格的。
          ansible_port: 22
          ansible_user: root
    


写作不易,转载请注明出处,谢谢~~

原文地址:https://www.cnblogs.com/ccbloom/p/15508526.html