Ansible AWX - 获取项目网址和用户



我正在将 Ansible 剧本迁移到 Ansible AWX 项目中。

以前我会从 git 中签出 Ansible 剧本,然后从命令行运行它。

在这种特定情况下,我有一个创建VMware虚拟机的Ansible Playbook。我使用以下任务来收集有关 git 存储库和当前 git 提交哈希的信息,并在 VM 注释中使用此信息,以便以后可以使用它来标识用于创建 VM 的确切说明。

- name: return git commit hash
command: git rev-parse HEAD
register: gitCommitHash
delegate_to: localhost
become: false
become_user: "{{ lookup('env','USER') }}"

- name: get remote git repo
command: git config --get remote.origin.url
register: gitRemote
delegate_to: localhost
become: false
become_user: "{{ lookup('env','USER') }}"

我意识到在AWX中运行的剧本以awx用户的身份运行。

无论如何,在剧本中,我可以获取运行 AWX 模板的 AWX 用户,并且可以获取 Ansible AWX 项目的网址吗?

更新

我发现我可以使用{{awx_user_name}}获取运行模板的 AWX,但尚未了解如何获取项目/剧本的 git 远程 url。

我用一个简单的剧本运行了一个作业模板:

---
- name: Debug AWX
hosts: all
tasks:
- debug:
var: vars

在输出中,我可以看到这些变量:

"awx_inventory_id": 1,
"awx_inventory_name": "Demo Inventory",
"awx_job_id": 23,
"awx_job_launch_type": "manual",
"awx_job_template_id": 10,
"awx_job_template_name": "Debug AWX",
"awx_project_revision": "3214f37f271ad589f7a63d12c3d1ef9fa0972d91",
"awx_user_email": "admin@example.com",
"awx_user_first_name": "",
"awx_user_id": 1,
"awx_user_last_name": "",
"awx_user_name": "admin",

因此,不,您不会从作业中获取AWX项目URL。但是你得到的是项目 ID!。

因此,您可以查询 API 以获取job_template详细信息,然后查询项目详细信息以获取 URL。我建议使用 CLI 进行这些步骤。

最新更新