问题描述
我有一本剧本,需要在运行时使用其自己的版本来部署各种配置。
今天,我使用了一个脚本,该脚本带有一个version
参数,然后git clone / checkout到该版本,最后使用-e project_version=$version
调用ansible-playbook。
这很好,但现在我想改用AWX。
启动作业时有“ SCM分支”参数,但在运行Playbook时似乎没有显示。
有适当的方法吗?
以下是我可能想到的(丑陋)解决方法:
- 启动AWX作业时手动添加
project_version
额外变量(因此版本必须每次输入两次) - 更改剧本以在运行时检索git标记/分支/提交标签(这不是那么简单,因为AWX不能正确进行git克隆)
- 通过检出一个中间项目来绕过AWX(更接近我现有的脚本)
解决方法
如果您想知道提交编号,可以在AWX中使用变量awx_project_revision
,在Ansible Tower中使用变量tower_project_revision
。运行模板时,这些变量会自动添加到作业环境中。