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

如何解决Ansible playbook在GitHub Actions中无法运行的问题

问题根因

你使用的第三方Ansible检查Action存在明确缺陷,直接导致运行失败:

  • 该Action运行时会强制覆写你项目根目录的ansible.cfg,将清单文件路径硬编码为它自动生成的host.ini,你项目中原先配置的inventory.yml完全失效
  • 它自动生成的host.ini第一行存在非法的[]配置段,不符合INI格式规范,Ansible无法正常解析该清单
  • 清单解析失败后Ansible只能识别内置的隐式localhost,而Ansible默认规则中隐式localhost不会匹配all组,最终你的playbook没有匹配到主机直接跳过执行。
解决方案

推荐方案:替换第三方Action,复用本地配置

完全放弃这个有缺陷的第三方Action,自己编写CI步骤,100%复用你本地、Vagrant环境的配置,不需要改动原有playbook或清单:
修改.github/workflows/ansible-ubuntu-latest.yml内容如下:

name: Ansible check ubuntu:latest

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4

    - name: 安装Ansible
      run: |
        sudo apt update
        sudo apt install -y ansible

    - name: 语法检查(可选)
      run: ansible-playbook local.yml --syntax-check

    - name: 实际运行Playbook
      run: ansible-playbook local.yml --become

GitHub官方的Ubuntu runner默认sudo无密码,不需要输入become密码,直接运行即可和本地、Vagrant环境表现完全一致。

兼容方案:适配原有第三方Action

如果你一定要继续使用原Action,只需做1处小改动:
修改local.yml中的hosts: all改为hosts: localhost即可,你本来就是本地运行的playbook,匹配localhost完全符合使用场景。

内容的提问来源于stack exchange,提问作者Amedee Van Gasse

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:57:03