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

Kubernetes上AWX挂载本地目录后UI无法识别剧本的问题求助

解决AWX UI无法识别本地挂载剧本的问题

核心问题分析

你仅为web容器挂载了hostPath卷,但AWX的任务执行依赖的task容器也需要访问相同的项目文件,同时AWX内部的项目管理服务需要正确识别挂载目录的权限与内容,这是导致UI无法识别剧本的核心原因。

具体修复步骤

1. 同步task容器的卷挂载

修改AWX CRD配置,为task容器添加相同的hostPath卷挂载,确保task容器能访问到剧本文件:

apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx
spec:
  service_type: nodeport
  projects_persistence: true
  projects_storage_access_mode: ReadWriteOnce
  web_extra_volume_mounts: |
    - name: static-data
      mountPath: /var/lib/projects
    - name: manual-projects
      mountPath: /var/lib/awx/projects
  # 新增task容器的卷挂载配置
  task_extra_volume_mounts: |
    - name: manual-projects
      mountPath: /var/lib/awx/projects
  extra_volumes: |
    - name: static-data
      persistentVolumeClaim:
        claimName: public-static-data-pvc
    - name: manual-projects
      hostPath:
        path: /var/lib/awx/projects
        # 指定类型为目录,避免容器误创建文件
        type: Directory

2. 修复文件权限

容器内的awx用户需要对挂载目录拥有读写权限,在K8s节点上执行以下命令调整本地路径权限:

sudo chown -R 1000:1000 /var/lib/awx/projects
sudo chmod -R 755 /var/lib/awx/projects

若不确定容器内awx用户的UID/GID,可执行kubectl exec -it deploy/awx-web -c awx-web -n awx -- id awx查看。

3. 在AWX UI中手动配置项目

重新部署AWX并等待Pod就绪:

kubectl apply -f your-awx-deploy.yml -n awx
# 等待web和task容器部署完成
kubectl rollout status deploy/awx-web -n awx
kubectl rollout status deploy/awx-task -n awx

进入AWX UI创建项目时,选择Manual类型,将项目路径设置为/var/lib/awx/projects,保存后即可识别到该路径下的playbook.yml。

4. 额外排查项(若问题仍存在)

  • 若为多节点K8s集群,hostPath仅在单个节点生效,建议替换为NFS等共享存储。
  • 若节点开启SELinux,需调整挂载目录的上下文:
sudo chcon -Rt container_file_t /var/lib/awx/projects

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:45:07