注解
从 Ansible Tower Version 3.8.1 开始,清单脚本已弃用。
如果您使用自定义清单脚本,请迁移至从项目中获取这些脚本。如需更多详情,请参阅后续部分中的 清单文件导入,并参阅 Ansible Tower User Guide 中的 清单源。
Tower 提供了从 Amazon AWS、Google Compute Engine 等云环境中同步动态清单的内置支持。Tower 还能够使用自定义脚本从您自己的清单源中拉取。
注解
只要 --overwrite_vars
**没有**设置,对清单进行同步后编辑和添加的 Inventory 主机变量仍然会保持。
要管理 Tower 中的自定义清单脚本,请点击左侧导航栏中的 Inventory Scripts () 图标。
要添加一个新的自定义清单脚本,请点击 按钮。
输入脚本的名称以及可选的描述。然后选择该脚本所属的 Organization。
然后,您可以将本地系统上的脚本拖放到 Custom Script 文本框中,或者剪切并粘贴清单脚本的内容。
您可以使用 Tower 机器上安装的任何动态语言(如 shell 或 python)编写清单脚本。它们必须以普通的脚本 shebang 行(如 #!/bin/bash
或 #!/usr/bin/python
)开头。它们以 awx
用户身份运行。清单脚本调用 '--list'
来列出返回 JSON 哈希/字典的清单。
通常,它们连接到网络以从其他来源检索清单。在启用多租户安全时(详情请参阅 Security),清单脚本将无法访问大多数 Tower 机器。如果需要访问本地 Tower 机器,请在 /etc/tower/conf.d/custom.py
中进行配置。
如需有关动态清单脚本以及如何编写这些脚本的更多信息,请参阅 Ansible 文档的 Intro to Dynamic Inventory 和 Developing Dynamic Inventory Sources 部分,或者参阅 GitHub 上的 example dynamic inventory scripts。