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

GitHub Runner运行dawidd6/action-ansible-playbook前安装jmespath依赖失败排查求助

问题分析与解决方案

首先,问题的核心原因是:你通过actions/setup-python配置的Python 3.11环境,和dawidd6/action-ansible-playbook使用的Ansible运行环境不是同一个。

dawidd6/action-ansible-playbook默认会在GitHub Runner上独立安装Ansible(通常是使用系统自带的Python环境,或者单独安装的Python),而你之前用pip3 install jmespath安装的依赖只存在于你指定的Python 3.11环境中,因此Ansible无法找到它,导致json_query过滤器报错。

下面提供几个可行的解决方案:

方案一:让Ansible Action使用你配置的Python环境

你可以通过python_interpreter参数,指定Ansible使用你之前设置的Python 3.11环境。步骤如下:

  1. 先获取你配置的Python路径并保存为输出变量:
- name: Get configured Python path
  id: get-python-path
  run: echo "path=$(which python3)" >> $GITHUB_OUTPUT
  1. 在运行Ansible Playbook的步骤中,添加python_interpreter参数:
- name: Run playbook
  uses: dawidd6/action-ansible-playbook@v2
  with:
    playbook: provision_vps.yml
    directory: ./ansible
    key: ${{secrets.ANSIBLE_PRIVATE_KEY}}
    vault_password: ${{secrets.ANSIBLE_VAULT_PASS}}
    python_interpreter: ${{ steps.get-python-path.outputs.path }}
    options: |
      --inventory hosts.inventory
      --verbose

这样Ansible就会使用你安装了jmespath的Python环境,自然就能找到依赖了。

方案二:在Ansible使用的环境中安装jmespath

如果你不确定Ansible会使用哪个Python环境,可以直接针对Runner上所有可能的Python环境安装jmespath,确保覆盖到Ansible的运行环境:

- name: Install Jmespath for all Python environments
  run: |
    # 给系统Python安装
    sudo pip3 install jmespath
    # 给你配置的Python安装
    pip3 install jmespath
    # 通过apt安装系统级的python3-jmespath
    sudo apt install -y python3-jmespath

这种方式比较直接,能确保不管Ansible用哪个Python版本,都能找到jmespath依赖。

方案三:验证Ansible使用的Python环境

如果上面的方案都不生效,你可以先在流水线中添加一个步骤,确认Ansible实际使用的Python版本和路径,再针对性安装:

- name: Check Ansible's Python environment
  run: |
    # 先安装Ansible(模拟Action的安装行为)
    sudo apt update && sudo apt install -y ansible
    # 查看Ansible使用的Python版本和路径
    ansible --version | grep "python version"
    which ansible

根据输出的路径,直接给对应的Python安装jmespath即可,比如如果输出显示Ansible用的是/usr/bin/python3,就执行sudo /usr/bin/python3 -m pip install jmespath。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 21:24:11