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

在OpenShift集群的AWX中执行Ansible export模块遇连接问题求助

解决OpenShift Operator部署AWX的资产导出问题

针对你遇到的localhost:443连接被拒和Worker Node无法SSH问题,不需要直接连接Worker Node,推荐以下两种更高效的导出方案:

方案一:通过AWX Route直接访问API导出(推荐)

用Operator部署的AWX会自动创建Route暴露服务,直接通过Route地址访问AWX API即可完成导出,无需远程连接节点:

  1. 获取AWX的Route地址
    在OpenShift终端执行命令:

    oc get route -n <你的AWX命名空间> awx -o jsonpath='{.spec.host}'
    

    得到类似awx-myawx.apps.cluster.example.com的地址。

  2. 修改Playbook
    将Playbook的目标主机改为本地(localhost),直接在控制节点调用AWX API:

    - name: 导出AWX模板和项目
      hosts: localhost
      connection: local
    
      tasks:
      - name: 导出指定资产
        awx.awx.export:
          job_templates: 'my_template'
          credentials: 'all'
          projects: 'all'
          all: True
          validate_certs: false
          controller_host: 'https://<上面获取的Route地址>'
          controller_oauthtoken: '<你的AWX OAuth Token>'
        register: export_output  
    
      - name: 保存导出文件到本地
        copy:
          content: "{{ export_output['assets'] }}"
          dest: ./awx_export.json
    

    注意:OAuth Token和用户名密码二选一即可,无需同时填写。

  3. 执行Playbook
    直接在控制节点运行:

    ansible-playbook export.yml
    

方案二:在AWX Task Pod内部执行导出(适合无外部Route访问场景)

如果AWX未暴露外部Route,可直接在AWX的Task Pod内执行导出操作:

  1. 进入AWX Task Pod

    oc rsh -n <你的AWX命名空间> deployment/awx-task
    
  2. 安装依赖(若未预装)

    pip install ansible ansible-core
    ansible-galaxy collection install awx.awx
    
  3. 创建并执行导出Playbook
    在Pod内创建Playbook文件,将controller_host设为Pod内部可访问的Service地址:

    - name: 导出AWX资产
      hosts: localhost
      connection: local
    
      tasks:
      - name: 导出指定资产
        awx.awx.export:
          job_templates: 'my_template'
          credentials: 'all'
          projects: 'all'
          all: True
          validate_certs: false
          controller_host: 'https://awx-web:8052'
          controller_username: 'admin'
          controller_password: '<你的管理员密码>'
        register: export_output  
    
      - name: 保存导出文件
        copy:
          content: "{{ export_output['assets'] }}"
          dest: /tmp/awx_export.json
    

    执行Playbook:

    ansible-playbook export.yml
    
  4. 将导出文件拷贝到外部
    打开新终端,执行拷贝命令:

    oc cp <你的AWX命名空间>/<awx-task-pod名称>:/tmp/awx_export.json ./awx_export.json
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 21:39:36