ansible - 从主机文件中的动态清单定义 hosts/tag

ansible - define hosts/tag from dynamic inventory in the host file

我在 ec2 实例上使用 ec2.py 和特定标签来获取我的主机,结果显示为 IP 地址列表,例如:

来自 ec2.py 的结果:

 "tag_test_staging": [
    "10_80_20_47"
  ],

我在我的 playbook - hosts: tag_Name_test 中定义了标签,它在所有带有 tag_Name_test 的实例上都是 运行。

有没有办法在 inventory/ 文件夹下的 hosts 文件中定义 hosts/tag 并且剧本将从那里获取主机而不是直接在上面指定 ec2 标签像现在这样的剧本?

如有任何建议,我们将不胜感激。

你已经走对了方向。

假设您通过 ec2.py 获得了动态库存,并且它是 tag_test_staging。所以你可以建立库存文件夹和文件如下

inventory 
  staging
    hosts
    group_vars
      all.yml
      tag_test_staging.yml
      tag_Name_test.yml

您在每个 YAML 文件中添加变量定义。 tag_test_staging.yml 中的变量将仅应用于具有该标签的实例。

现在您可以将剧本应用为:

ansible-playbook -i inventory/staging your_playbook.yml

有一个关于如何use dynamic inventory with clouds的最佳实践文档,也请看一看。