使用动态清单脚本生成清单文件。下面是一个Python代码示例,可以将动态清单的输出格式转换为Ansible清单文件格式:
#!/usr/bin/env python
import json
import sys
# Load the dynamic inventory data
inventory_data = json.load(sys.stdin)
# Format the inventory data as an Ansible inventory file
print("[all]")
for host in inventory_data['hosts']:
print(host['hostname'])
for group in host['groups']:
print(group)
for var_name, var_value in host['vars'].items():
print("{}={}".format(var_name, var_value))
将上面的代码保存为一个可执行的Python文件,然后将其作为动态清单脚本指定给Ansible即可。
例如,可以将上面的Python文件保存为“my_inventory.py”,然后在Ansible配置文件中指定:
[my_inventory]
inventory = /path/to/my_inventory.py
运行Ansible时,该脚本会生成 Ansible 格式的清单文件,并将其传递给 Ansible。Ansible 将使用该清单文件来管理目标主机。