如何在AWX中正确执行ansible-galaxy安装操作
AWX运行Juniper作业模板报错修复方案
已识别的配置错误
- 集合名称拼写错误:
requirements.yml中填写的juniper.devices为错误名称,正确集合名为juniper.device,末尾多余的s会导致依赖拉取失败。 - 依赖文件存放路径错误:AWX不会自动识别
collections、roles子目录下的依赖定义文件,requirements.yml必须放在项目根目录,单文件可同时声明集合、角色两类依赖,无需拆分存放。 - 依赖安装位置错误:宿主机系统层面通过
yum安装Ansible、手动执行ansible-galaxy命令安装的角色和集合,存放在宿主机本地Ansible路径下,AWX默认使用容器化执行环境运行作业,宿主机安装的依赖不会被加载到作业运行环境中。 - 权限配置错误:项目目录未归属AWX运行用户所有,会导致作业进程无法读取项目文件、拉取本地依赖。
修复操作步骤
- 修正依赖定义文件
进入项目根目录/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 {} \;
- 配置AWX自动同步依赖
登录AWX控制台,打开对应项目的配置页,开启「启动时同步Ansible Galaxy依赖」选项,手动触发一次项目更新。AWX会在项目同步阶段自动读取根目录下的requirements.yml,在作业执行环境中安装所有声明的依赖,无需在宿主机手动执行galaxy安装命令。
额外排查项
- 如果使用自定义执行环境镜像而非AWX默认镜像,需要确认镜像内已安装Juniper集合依赖的Python组件(如
junos-eznc、lxml、ncclient),否则依赖安装完成后仍会出现设备连接报错。 - 若同步后仍报错,直接查看作业输出日志中
Fetching Ansible Galaxy dependencies段落,会明确打印依赖拉取失败的具体原因(如网络超时、名称拼写错误、权限不足等),可根据日志定向排查。
内容的提问来源于stack exchange,提问作者Dustin Burmeister
相关产品推荐
相关产品推荐

