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