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的最佳实践文档,也请看一看。
我在 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的最佳实践文档,也请看一看。