31. 最佳实践
31.1. 使用源代码控制
虽然 AWX 支持直接存储在服务器上的剧本,但最佳实践是将您的剧本、角色和任何相关详细信息存储在源代码控制中。这样,您将拥有一个审计跟踪,描述何时以及为何更改了用于自动化基础设施的规则。此外,它允许您轻松地与基础设施或团队的其他部分共享剧本。
31.2. Ansible 文件和目录结构
请查看 Ansible 文档中的 Ansible 提示和技巧。如果创建要在项目之间使用的通用角色集,则应通过源代码控制子模块或通用位置(例如 /opt
)访问这些角色。项目不应期望从其他项目导入角色或内容。
注意
剧本不应使用 vars_prompt
功能,因为 AWX 不允许交互式地回答 vars_prompt
问题。如果您必须使用 vars_prompt
,请参考并使用 调查 功能。
注意
剧本不应在没有超时的情况下使用 Ansible 的 pause
功能,因为 AWX 不允许交互式地取消暂停。如果您必须使用 pause
,请确保设置超时。
运行的作业使用剧本目录作为当前工作目录,尽管作业应该被编码为使用 playbook_dir
变量,而不是依赖于此。
31.3. 使用动态库存源
如果您有基础设施的外部真相来源,无论是云提供商还是本地 CMDB,最好定义一个库存同步流程并使用对动态库存的支持(包括云库存来源)。这确保您的库存始终是最新的。
注意
对库存主机变量的编辑和添加将在库存同步后持续存在,只要未设置 --overwrite_vars
。
31.4. 库存变量管理
建议将变量数据与主机和组定义一起保留(请参阅库存编辑器),而不是使用 group_vars/
和 host_vars/
。如果您使用动态库存源,AWX 可以将这些变量与数据库同步,只要未设置“覆盖变量”选项。
31.5. 自动扩展a
使用“回调”功能允许新启动的实例请求配置,这对于自动扩展场景或配置集成非常有用。
31.6. 大量主机数量
考虑在作业模板上将“forks”设置为更大的值以增加执行运行的并行性。有关调整 Ansible 的更多信息,请参阅 Ansible 博客。
31.7. 持续集成/持续部署
对于诸如 Jenkins 之类的持续集成系统,要生成作业,它应该向作业模板发出 curl 请求。作业模板的凭据不应要求提示任何特定密码。请参阅 CLI 文档,以获取配置和使用说明。