zoukankan      html  css  js  c++  java
  • Ansible之inventory资源清单

    一、清单文件语法

    ansible安装完成后,在/etc/ansible/目录下有个hosts文件,这个文件就是ansible默认的主机清单的配置文件,在清单文件中,可以指定主机名或IP地址,一行一个,也可以是组的形式,组下面包含一个或多个主机,组还可以嵌套,方式很灵活。下面的例子会向你展示这个文件的写法。

    #表示单个主机,不属于任何组
    web.frank.com	
    
    #组名为:db-server,组内包含db1.frank.com,db2.frank.com 2个主机
    [db_server]		
    db1.frank.com
    db2.frank.com
    
    #组名为:ha,组内有3台主机,可以写域名,也可以写IP地址
    [ha]			
    ha1.frank.com
    192.168.100.10
    192.168.100.11
    
    [k8s_master]
    master1.frank.com
    master2.frank.com
    master3.frank.com
    
    [k8s_nodes]
    node1.frank.com
    node2.frank.com
    node3.frank.com
    
    #通过范围来简化,组内包含3台主机,分别为:etcd1.frank.com,etcd2.frank.com,etcd3.frank.com 使用方法:[start:end]
    [k8s_etcd_cluster]
    etcd[1:3].frank.com	
    
    #嵌套组写法,固定格式:[组名:children]
    [k8s_all:children]		
    master
    nodes
    etced-cluster

    这里有一点需要注意的地方:文件中的组名尽量用下划线_代替中横线-,不然ansible会报警告。
    以上介绍了ansible清单文件的基本写法和语法格式,是直接写在了/etc/ansible/hosts文件里的,一般来说并不推荐这样做,而是建个ansible的工作目录,在这个目录里创建一个叫inventory的文件,把主机清单写到inventory中,在调用时在通过-i INVENTORY指定相应资源。

    二、清单文件相关操作

    • 创建ansible工作目录
    [root@master ansible]# pwd
    /root/ansible
    [root@master ansible]# ls
    ansible.cfg  copy_repo.yml  inventory  pushsshkey.yaml  remove_k8s.yaml  update_kernel.yml  update_vim8.yml  yum_install_etcd_3.yml
    • 编写inventory
    [root@master ansible]# cat inventory 
    [k8s_master]
    master
    node[1:2]
    
    [k8s_etcd_cluster]
    master
    node[1:2]
    
    [k8s_nodes]
    node[1:3]
    • 验证主机是否在清单中

      使用 ansible host-or-group -i inventory --list-hosts列出文件中的受管主机和组

    [root@master ansible]# ansible k8s_etcd_cluster -i inventory  --list-hosts
      hosts (3):
        master
        node1
        node2

    ​ 使用 ansible all -i inventory --list-hosts 列出所有受管主机

    [root@master ansible]# ansible all -i inventory --list-hosts
      hosts (4):
        master
        node1
        node2
        node3

    ​ 使用 ansible ungrouped -i inventory --list-hosts 列出不属于某个组的受管主机

    [root@master ansible]# ansible ungrouped -i inventory --list-hosts
    [WARNING]: No hosts matched, nothing to do
      hosts (0):

    ansible的清单文件和操作并不只是为了查看有哪些主机在清单中,更重要的是配合playbook使用,不过在介绍playbook之前还得要了解一下ansible.cfg的配置文件。

    =======================================================================

    知识无边界,交流以长进

    如需转载,请注明出处,谢谢

    =======================================================================

  • 相关阅读:
    leetcode 437. 路径总和 III
    leetcode 113. 路径总和 II
    题解 【CF387B】George and Round
    题解 【CF489B】 BerSU Ball
    题解【2.23考试T3】val
    题解【2.23考试T1】div
    题解 【洛谷P4290】 [HAOI2008]玩具取名
    题解 【洛谷P1035】[NOIP2002]级数求和
    题解【洛谷P1046】[NOIP2005] 陶陶摘苹果
    题解【洛谷P1618】 三连击(升级版)
  • 原文地址:https://www.cnblogs.com/mfyang/p/15130284.html
Copyright © 2011-2022 走看看