openEuler 下 Ansible 模块缺失 / 损坏后重装完整教程

一、问题背景

在使用 Ansible 时,若出现类似报错:

复制代码
The module ping was not found in configured module paths

或手动检查模块文件时提示:

复制代码
ls: 无法访问 '/usr/share/ansible/plugins/modules/ping.py': No such file or directory

说明 Ansible 安装包损坏 / 模块路径变更 / 最小化安装,需要重装修复。


二、核心原因

  1. 安装包损坏:dnf 安装中断、源文件缺失导致核心模块丢失
  2. 版本拆分问题 :误装 ansible-core(最小核心版),未安装完整 ansible
  3. 路径变更 :openEuler 2203SP4 等版本将模块移至 Python 库目录,手动 ls 旧路径会提示不存在(但 Ansible 本身可正常使用)

三、完整重装步骤(openEuler 专属)

步骤 1:彻底卸载现有 Ansible

运行

复制代码
# 卸载 ansible 和 ansible-core
sudo dnf remove -y ansible ansible-core

# 清理残留目录(避免旧配置干扰)
sudo rm -rf /usr/share/ansible
sudo rm -rf ~/.ansible

步骤 2:清理并重建软件源缓存

运行

复制代码
# 清理旧缓存
sudo dnf clean all

# 重新生成缓存
sudo dnf makecache

步骤 3:安装完整 Ansible 包 (关键!不要装 ansible-core

运行

复制代码
# 安装完整 ansible 包(包含所有官方模块)
sudo dnf install -y ansible

若提示找不到 ansible 包,先安装 EPEL 源:

bash

运行

复制代码
sudo dnf install -y epel-release
sudo dnf makecache
sudo dnf install -y ansible

修改ansible两个配置文件:ansible.cfg和hosts

具体配置步骤见我CSDN的"自动化运维"专栏的《Ansible 配置与环境搭建超全教程(自动化运维基础)》

复制代码
vim  /etc/ansible/ansible.cfg

vim  /etc/ansible/hosts

步骤 4:验证安装是否成功

4.1 检查模块是否存在(openEuler 新路径)

bash

运行

复制代码
# 查找 ping 模块(openEuler 2203SP4 路径)
find /usr/lib/python3.9/site-packages/ansible -name "ping.py"

✅ 正常输出示例:

复制代码
/usr/lib/python3.9/site-packages/ansible/modules/system/ping.py
4.2 测试本地连通性(验证模块可用)

运行

复制代码
ansible localhost -m ping

✅ 成功输出:

运行

复制代码
ansible test02 -m ping


四、总览

复制代码
#!/bin/bash
# Ansible 损坏修复脚本(openEuler 专属)

echo "=== 1. 卸载现有 Ansible ==="
sudo dnf remove -y ansible ansible-core
sudo rm -rf /usr/share/ansible ~/.ansible

echo "=== 2. 清理并重建缓存 ==="
sudo dnf clean all
sudo dnf makecache

echo "=== 3. 安装完整 Ansible 包 ==="
sudo dnf install -y ansible

echo "=== 4. 验证安装 ==="
find /usr/lib/python3.9/site-packages/ansible -name "ping.py"
ansible localhost -m ping

#"=== 修复完成!==="

相关推荐
Dlrb12119 小时前
数据结构-内核链表
linux·数据结构·链表·内核链表·inline·容器宏
zzzsde9 小时前
【Linux】线程同步和互斥(5):线程池的实现&&线程安全
linux·运维·服务器·开发语言·算法·安全
不吃土豆的马铃薯10 小时前
高性能服务器程序框架详解(包括Reactor,有限状态机等)
linux·服务器·开发语言·网络·c++
bucenggaibian10 小时前
搭建CMD编译C语言环境
linux·c语言·windows
程序猿乐锅10 小时前
Linux常用命令详解:目录、文件、压缩、编辑与查找
linux·运维·服务器
Shadow(⊙o⊙)10 小时前
库的制作与原理1.0,库打包,协作,目标文件.o、ELF格式。
linux·运维·服务器·开发语言
文青小兵10 小时前
Linux云计算——docker 网络和部分挂载(二)
linux·docker·云计算
AOwhisky10 小时前
Ceph系列第五期:Ceph 对象存储(RADOS Gateway)精讲
linux·运维·笔记·ceph·gateway·对象存储
xhaxy10 小时前
pgsql集群搭建(Patroni + etcd )
linux·postgresql·etcd
愿天垂怜10 小时前
【C++脚手架】etcd 的介绍与使用
java·linux·服务器·c语言·c++·中间件·etcd