0

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

ec2.py 的结果:

 "tag_test_staging": [
    "10_80_20_47"
  ],

我在我的剧本中定义了标签,- hosts: tag_Name_test它在所有带有tag_Name_test.

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

任何建议,将不胜感激。

4

1 回答 1

2

你已经走向了正确的方向。

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

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

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

所以现在你可以将你的剧本应用为:

ansible-playbook -i inventory/staging your_playbook.yml

有一个关于如何在云中使用动态库存的最佳实践文档,也请看一下。

于 2017-03-07T09:32:03.827 回答