文档首页> Ansible> 用户指南> Ansible Inventory介绍
更新时间:2021-09-30 GMT+08:00
分享

Ansible Inventory介绍

Ansible可同时操作属于一个组的多台主机。组和主机之间的关系通过Inventory文件配置。Ansible Inventory分为静态Inventory和动态Inventory。当被管理主机比较少的情况下,直接在静态Inventory的host文件中管理即可;当主机越来越多,不断变化时,可以通过动态Inventory来管理。动态Inventory指的是通过外部脚本自动获取主机列表,并按照设置的分组方式自动对主机列表进行分组,同时按照Ansible所要求的格式返回给Ansible命令。

华为云已经提供了动态Inventory文件,利用该文件可实现对指定过滤条件的主机信息的动态获取。更多详细信息,请参见使用动态Inventory

华为云动态Inventory

以下是华为云动态Inventory获取到的一部分的主机信息。

{
   "_meta": {
     "hostvars": {
       "ecs_ansible_test_0001": {
         "ansible_ssh_host": "45.9.xx.xx",
         "id": "d9bdd7ef-dfa2-4ab2-abae-1cb25788813f",
         "name": "ecs-ansible-test-0001",
         ...
       },
       "ecs_ansible_test_0002": {
         "ansible_ssh_host": "37.18.xx.xx",
         "id": "c1936f99-469b-4d96-9e20-89fa816b310c",
         "name": "ecs-ansible-test-0002",
         ...
       }
     }
   },
   "c1936f99-469b-4d96-9e20-89fa816b310c": [
     "ecs_ansible_test_0002"
   ],
   "d9bdd7ef-dfa2-4ab2-abae-1cb25788813f": [
     "ecs_ansible_test_0001"
   ],
   "huaweicloud": [
     "ecs_ansible_test_0001",
     "ecs_ansible_test_0002"
   ],
   "image_id_cf9a291d_a62e_4df6_a7c5_0f6d2f16f351": [
     "ecs_ansible_test_0001",
     "ecs_ansible_test_0002"
   ],
   "cn-north-4": [
     "ecs_ansible_test_0001",
     "ecs_ansible_test_0002"
   ],
   "cn-north-4a": [
     "ecs_ansible_test_0001",
     "ecs_ansible_test_0002"
   ],
   "security_group_id_2ac34ff2_a923_465c_8591_f618f5c250bf": [
     "ecs_ansible_test_0001",
     "ecs_ansible_test_0002"
   ],
   "vpc_id_e98a5194_b270_4cad_b233_99486744f3ac": [
     "ecs_ansible_test_0001",
     "ecs_ansible_test_0002"
   ]
 }

华为云的动态Inventory提供了多个组到实例的映射:

  • Global

    所有的实例都属于 huaweicloud 这个组。例如:

    "huaweicloud": [
      "ecs_ansible_test_0001",
      "ecs_ansible_test_0002"
    ]
  • 实例ID

    ECS实例的ID。例如:

    "c1936f99-469b-4d96-9e20-89fa816b310c": [
      "ecs_ansible_test_0002"
    ],
    "d9bdd7ef-dfa2-4ab2-abae-1cb25788813f": [
      "ecs_ansible_test_0001"
    ],
  • Region

    属于一个华为云Region的所有实例构成的一个组。例如:

    "cn-north-4": [
      "ecs_ansible_test_0001",
      "ecs_ansible_test_0002"
    ],
  • 可用区

    属于同一个可用区的所有实例构成一个组。 例如:

    "cn-north-4a": [
      "ecs_ansible_test_0001",
      "ecs_ansible_test_0002"
    ],
  • 安全组

    实例可属于一个或多个安全组。每一个组的前缀都是 security_group_id_。例如:

    "security_group_id_2ac34ff2_a923_465c_8591_f618f5c250bf": [
      "ecs_ansible_test_0001",
      "ecs_ansible_test_0002"
    ]

除此之外,还有很多类似属性用于划分主机组,如 VPC ID,镜像ID等。

分享:

    相关文档

    相关产品