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

Python调用Ansible Playbook报错:找不到ansible_collections.ansible.builtin模块

解决Ansible Playbook执行时ansible_collections.ansible.builtin模块找不到的问题

问题根源说明

ansible_collections.ansible.builtin这个路径本身就是错误的——ansible-core内置的builtin模块并不在集合目录下,而是直接位于ansible.builtin路径下。你看到的报错大概率是Playbook或脚本里的模块引用路径写错了,或者Ansible环境加载逻辑出了问题。

具体解决方案

1. 修正Playbook中的模块引用

检查你的Playbook,把所有错误的模块路径修正:

  • 错误写法:module: ansible_collections.ansible.builtin.command
  • 正确写法:module: ansible.builtin.command 或直接简写为 module: command(builtin模块默认无需前缀)

2. 确认Python环境与Ansible安装的一致性

在你的Python脚本开头添加以下代码,验证当前脚本使用的Python解释器和安装ansible/ansible-core的环境是否一致:

import sys
print(sys.executable)

如果输出的路径和你执行pip install ansible时的Python路径不一致,说明脚本用了错误的虚拟环境或全局环境,切换到正确环境即可。

3. 规范PlaybookExecutor的初始化代码

确保脚本中正确初始化Ansible的核心组件,避免路径加载异常。示例代码如下:

from ansible.executor.playbook_executor import PlaybookExecutor
from ansible.inventory.manager import InventoryManager
from ansible.parsing.dataloader import DataLoader
from ansible.vars.manager import VariableManager

# 初始化核心组件
loader = DataLoader()
inventory = InventoryManager(loader=loader, sources='localhost,')
variable_manager = VariableManager(loader=loader, inventory=inventory)

# 初始化PlaybookExecutor
pb_executor = PlaybookExecutor(
    playbooks=['你的playbook路径.yml'],
    inventory=inventory,
    variable_manager=variable_manager,
    loader=loader,
    passwords={}
)

# 执行Playbook
result_code = pb_executor.run()

4. 重新安装ansible-core确保完整性

如果以上步骤都无效,可能是ansible-core安装损坏,执行以下命令重装:

pip uninstall ansible-core -y
pip install ansible-core==2.15.2

重装后检查site-packages/ansible/builtin目录是否存在,该目录下应包含所有内置模块文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 11:22:39