You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWX中传入谷歌SA JSON运行GCP VM管理Ansible Playbook

AWX 调用GCP服务账号凭证运行Playbook操作指引

AWX的Google Compute Engine类型凭证会在作业运行时自动完成凭证注入,不需要手动上传密钥到AWX服务器、也不需要保留本地运行时的硬编码路径配置,按以下步骤操作即可:

1. 调整Playbook移除本地硬编码的凭证配置

你本地运行时写死的本地密钥路径、SA邮箱配置在AWX执行环境中不存在,需要删除这些硬编码参数。Ansible GCP模块会自动读取AWX注入的认证环境变量,不需要手动指定service_account_file参数。
修改后的可用Playbook示例:

- name: Update Machine Type of GCE Instance
  hosts: localhost
  gather_facts: no
  connection: local

  vars:
    instance_name: ansible-test
    machine_type: e2-medium 
    image: Debian GNU/Linux 11 (bullseye)
    zone: us-central1-a
    project_id: project-stg-xxxxx

  tasks:
  - name: Stop(Terminate) a instance
    gcp_compute_instance:
      name: "{{instance_name}}"
      project: "{{ project_id }}"
      zone: "{{zone}}"
      auth_kind: serviceaccount
      status: TERMINATED

*如果你的Playbook后续要跨本地和AWX环境复用,也可以给service_account_file、service_account_email参数设置默认空值,本地运行时再传入本地路径变量即可,不影响AWX环境的自动识别。

2. 作业模板关联已创建的GCP凭证

  • 进入你之前创建的目标作业模板的编辑页面
  • 找到「凭证」配置区块,点击添加凭证,在下拉列表中选中你之前创建的名为ansible-gcp-secret的Google Compute Engine类型凭证
  • 确认作业模板的清单选择为包含localhost的本地清单、Playbook路径指向正确的文件后,保存模板配置

3. 运行验证

直接启动作业即可正常运行,AWX执行作业时会自动完成以下操作:

  • 将你上传的SA JSON密钥临时写入执行环境的安全临时路径
  • 注入GCP_SERVICE_ACCOUNT_FILE、GCP_SERVICE_ACCOUNT_EMAIL、GCP_PROJECT等GCP模块识别所需的环境变量
  • 作业执行结束后自动销毁临时密钥文件,不会在执行节点残留凭证信息

常见问题:如果运行时报凭证找不到的错误,先确认作业模板是否正确关联了GCE类型凭证,不要把SA密钥作为普通文件类型凭证手动挂载,AWX预置的GCE凭证类型已经做了适配,手动挂载文件反而会导致环境变量识别异常。

内容的提问来源于stack exchange,提问作者SHC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 09:09:20