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

如何在AWX中正确执行ansible-galaxy安装操作

AWX运行Juniper作业模板报错修复方案

已识别的配置错误

  • 集合名称拼写错误:requirements.yml中填写的juniper.devices为错误名称,正确集合名为juniper.device,末尾多余的s会导致依赖拉取失败。
  • 依赖文件存放路径错误:AWX不会自动识别collections、roles子目录下的依赖定义文件,requirements.yml必须放在项目根目录,单文件可同时声明集合、角色两类依赖,无需拆分存放。
  • 依赖安装位置错误:宿主机系统层面通过yum安装Ansible、手动执行ansible-galaxy命令安装的角色和集合,存放在宿主机本地Ansible路径下,AWX默认使用容器化执行环境运行作业,宿主机安装的依赖不会被加载到作业运行环境中。
  • 权限配置错误:项目目录未归属AWX运行用户所有,会导致作业进程无法读取项目文件、拉取本地依赖。

修复操作步骤

  1. 修正依赖定义文件
    进入项目根目录/var/lib/awx/projects/_8__getconfigs/,创建或覆盖requirements.yml文件,内容如下:
    ---
    

collections:
- name: juniper.device
roles:
- name: Juniper.junos

删除之前放在`collections`、`roles`子目录下的错误`requirements.yml`文件,避免配置冲突。

2. 修复目录权限
AWX正常部署后会默认创建`awx`系统用户作为作业运行身份,缺失该用户会导致权限校验失败,执行以下命令修复:
```bash
# 安装缺失的awx系统用户组件
dnf install -y awx-user
# 递归将项目目录所有权分配给awx用户及用户组
chown -R awx:awx /var/lib/awx/projects/_8__getconfigs/
# 设置合理的目录权限,确保awx用户可读、可遍历目录
chmod -R 750 /var/lib/awx/projects/_8__getconfigs/
find /var/lib/awx/projects/_8__getconfigs/ -type f -exec chmod 640 {} \;
  1. 配置AWX自动同步依赖
    登录AWX控制台,打开对应项目的配置页,开启「启动时同步Ansible Galaxy依赖」选项,手动触发一次项目更新。AWX会在项目同步阶段自动读取根目录下的requirements.yml,在作业执行环境中安装所有声明的依赖,无需在宿主机手动执行galaxy安装命令。

额外排查项

  • 如果使用自定义执行环境镜像而非AWX默认镜像,需要确认镜像内已安装Juniper集合依赖的Python组件(如junos-eznc、lxml、ncclient),否则依赖安装完成后仍会出现设备连接报错。
  • 若同步后仍报错,直接查看作业输出日志中Fetching Ansible Galaxy dependencies段落,会明确打印依赖拉取失败的具体原因(如网络超时、名称拼写错误、权限不足等),可根据日志定向排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:45:33