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

如何从Ansible Tower凭据中获取OAuth Token并赋值给Playbook变量

从Ansible Tower凭据中获取OAuth Token并传入Playbook的方法

方法一:通过作业模板关联凭据自动注入变量

这是最直接的方式,只需在作业模板中关联目标凭据,Tower会自动将凭据字段作为变量传入Playbook:

  1. 打开Ansible Tower中你要使用的作业模板,在「凭据」选项卡中添加cred_tower_oauth凭据。

  2. 修改Playbook,使用该凭据类型对应的默认变量名调用OAuth Token:

    - name: Access API with OAuth Token from Ansible Tower Credential
      hosts: localhost
      tasks:
        - name: Access API with OAuth Token
          uri:
            url: "https://api.example.com/data"
            method: GET
            headers:
              Authorization: "Bearer {{ tower_oauth_token }}"
            return_content: yes
          register: api_response
    
        - name: Display token
          debug:
            msg: "token: {{ tower_oauth_token }}"
    

    注:Red Hat Ansible Automation Platform类型的凭据,其OAuth Token对应的默认变量名为tower_oauth_token。

  3. 若想保留Playbook中oauth_token的变量名,可在作业模板的「额外变量」中添加映射:

    oauth_token: "{{ tower_oauth_token }}"
    

方法二:使用Lookup插件直接查询凭据

如果无需通过作业模板关联凭据,或需要动态获取凭据内容,可使用awx.awx.credential lookup插件:

  1. 确保环境已安装awx.awx集合(Tower默认已预装,若缺失可执行):
    ansible-galaxy collection install awx.awx
    
  2. 修改Playbook,添加任务获取OAuth Token:
    - name: Access API with OAuth Token from Ansible Tower Credential
      hosts: localhost
      tasks:
        - name: Fetch OAuth Token from Tower credential
          set_fact:
            oauth_token: "{{ lookup('awx.awx.credential', 'cred_tower_oauth', field='oauth_token', host='https://your-tower-instance-url') }}"
          vars:
            # 使用作业执行时的内置令牌验证,需确保作业拥有读取该凭据的权限
            tower_oauth_token: "{{ lookup('env', 'AWX_OAUTH_TOKEN') }}"
    
        - name: Access API with OAuth Token
          uri:
            url: "https://api.example.com/data"
            method: GET
            headers:
              Authorization: "Bearer {{ oauth_token }}"
            return_content: yes
          register: api_response
    
        - name: Display token
          debug:
            msg: "token: {{ oauth_token }}"
    
    注:
    • 将host参数替换为你的Tower实例实际URL;
    • AWX_OAUTH_TOKEN是作业执行时Tower自动注入的环境变量,用于lookup请求的身份验证;
    • 需确保执行作业的角色/用户拥有读取cred_tower_oauth凭据的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 18:42:23