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

AWX Tower执行Playbook时报jmespath未安装错误的排查求助

AWX Tower运行Playbook提示jmespath未安装(本地执行正常)

问题背景

在Red Hat Enterprise Linux Server 7.9(Maipo)的Ansible控制节点部署了AWX项目与作业模板,其中一个Playbook包含以下任务:

- name: Filter with json_query the list of current assigned policies of the LDAP user as string separated by comma
  set_fact: ldap_policy_response: "{{ ldap_user_current_policies.json | community.general.json_query(jmesquery) | join(',') }}" 
  vars: 
    jmesquery: 'data.policies[*]' # ldap_policy_response

该Playbook直接在Ansible控制节点运行时一切正常,但通过AWX Tower执行时触发报错。

报错信息

"You need to install \"jmespath\" prior to running json_query filter"

环境信息

已安装的jmespath版本

Installed Packages
python2-jmespath.noarch   0.9.4-2.el7   u/rhel-7-server-epel7-x86_64

Ansible版本详情

ansible 2.9.27
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/ansible/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /bin/ansible
  python version = 2.7.5 (default, May 27 2022, 11:27:32) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]

原因分析与排查方向

核心原因

AWX Tower的运行环境与本地Ansible使用的系统环境不一致,导致jmespath模块无法被AWX的Python解释器加载。

具体排查步骤

  • 检查AWX使用的Python环境:切换到AWX运行用户(通常为awx),执行python -c "import jmespath; print(jmespath.__version__)",如果报错则说明该环境未安装jmespath。
  • 确认执行环境配置:查看作业模板的「执行环境」设置,若使用自定义执行环境(EE),需确保构建EE时已安装jmespath和community.general集合;若使用默认EE,可尝试重新同步或安装依赖。
  • 检查虚拟环境依赖:AWX通常会使用独立的虚拟环境(如/var/lib/awx/venv/ansible),进入该环境执行pip install jmespath安装缺失的依赖。
  • 验证模块路径权限:确认AWX运行用户对系统Python的jmespath模块路径(/usr/lib/python2.7/site-packages/jmespath)有读取权限,若权限不足需调整。

内容的提问来源于stack exchange,提问作者Viktør Grigørørv

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:24:31