ansible-awx - 获取 SCM 分支/标签名称作为剧本变量
问题描述
我有一本剧本,它在运行时需要自己的版本来部署各种配置。今天我使用一个脚本,它接受一个version
参数,然后 git clone/checkout 到这个版本,最后调用 ansible-playbook -e project_version=$version
。
这很好,但现在我想改用 AWX。
启动作业时有“SCM Branch”参数,但在剧本运行期间似乎没有暴露。
有没有合适的方法来做到这一点?
以下是我能想到的(丑陋的)解决方法:
- 启动 AWX 作业时手动添加
project_version
额外变量(因此每次必须输入两次版本) - 更改剧本以在运行时检索 git tag/branch/commit 标签(这不是那么简单,因为 AWX 没有执行正确的 git clone)
- 绕过 AWX,使其签出一个中间项目(更接近我现有的脚本)
解决方案
如果您想知道提交编号,您可以awx_project_revision
在 AWX 和tower_project_revision
Ansible Tower 中使用该变量。当您运行模板时,这些变量会自动添加到作业环境中。
推荐阅读
- php - PHPExcel 意外的格式化数字
- vxworks - 在 VMware 上运行 VxWorks
- bash - 按 bash 中的所有字段进行数字排序
- vue.js - 如何从 vue-cli 中数组的 v-for 循环中仅更新选定值的数据
- reporting-services - 带有多参数文本的 SSRS 过滤器
- c - 我应该在哪里设置局部变量以提高效率?
- jquery - 在 jquery ui 中拖放后单击对象
- angular - 我在 Angular 的最新版本中使用 Mat Autocomplete,通常在我的项目中使用它,出现此类错误
- sql - 如何告诉“union all”实际选择哪个表?
- java - Spring Boot - log4j2.properties 创建日志文件但不将日志写入文件