Huawei Cloud EulerOS 2.0
# cat /etc/os-release
NAME="Huawei Cloud EulerOS"
VERSION="2.0 (aarch64)"
ID="hce"
VERSION_ID="2.0"
PRETTY_NAME="Huawei Cloud EulerOS 2.0 (aarch64)"
ANSI_COLOR="0;31"
# uname -a
Linux ingress01 5.10.0-182.0.0.95.r3008_246.hce2.aarch64 #1 SMP Tue Sep 23 07:42:45 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux
# yum install -y ansible
Last metadata expiration check: 0:02:20 ago on Tue 01 Sep 2026 04:36:07 PM CST.
No match for argument: ansible
Error: Unable to find a match: ansible
Huawei Cloud EulerOS 2.0 官方 yum 仓库没有提供 ansible rpm 包,所以 yum 找不到。
如何 yum 安装 ansible ?
重要结论
✅ HCE2.0(Huawei Cloud EulerOS 2.0)原生官方yum仓库没有ansible rpm包,直接yum install ansible必然找不到
网上两种做法:
1)增加openEuler社区EPOL源可以yum装上ansible,但是生产环境有依赖冲突风险(华为官方不推荐混用社区源与HCE原生源)
2)不要添加CentOS EPEL源!绝对不要,ABI不兼容,极易弄坏系统
✅优先推荐:pip安装ansible(最稳妥,不受yum源限制,前面给过方案)
✅如果你坚持一定要yum安装rpm包,只能临时添加openEuler‑22.03‑LTS的EPOL/everything源(仅测试环境使用,不建议正式业务机)
测试环境:yum安装ansible(openEuler社区源,aarch64)
⚠️风险提示:华为官方文档明确警告,HCE原生源和openEuler社区源存在包冲突;操作前备份原有repo文件,上线机器不要用此方法
- 备份原有HCE源
mv /etc/yum.repos.d/hce.repo /etc/yum.repos.d/hce.repo.bak
- 创建
/etc/yum.repos.d/openeuler2203.repo
[openEuler-everything]
name=openEuler-22.03-LTS everything
baseurl=https://repo.openeuler.org/openEuler-22.03-LTS/everything/aarch64/
enabled=1
gpgcheck=0
priority=5
[openEuler-EPOL]
name=openEuler-22.03-LTS EPOL
baseurl=https://repo.openeuler.org/openEuler-22.03-LTS/EPOL/main/aarch64/
enabled=1
gpgcheck=0
priority=5
- 重建yum缓存
yum clean all
yum makecache
- 现在可以yum安装ansible
yum install -y ansible
ansible --version
安装成功,但版本比较老旧(社区rpm包更新慢)
用完之后恢复系统原生源(非常重要)
rm -f /etc/yum.repos.d/openeuler2203.repo
mv /etc/yum.repos.d/hce.repo.bak /etc/yum.repos.d/hce.repo
yum clean all && yum makecache
恢复后,ansible不会被卸载,但是后续yum不能再升级ansible。
内网离线yum安装方案(如果你必须rpm包、不能pip)
- 在一台同架构、能联网的HCE2.0机器,临时加上上面openEuler源
- 下载ansible全部依赖rpm包
yumdownloader --resolve --destdir=/tmp/rpm_ansible ansible
- 把所有rpm传到内网服务器,不要添加外部源,直接本地rpm安装
cd /tmp/rpm_ansible
yum localinstall *.rpm -y
✅这种离线本地rpm方式,不需要长期挂载openEuler源,风险最小
最终建议取舍
- 生产环境:放弃yum,使用 pip3 install ansible,稳定无依赖冲突,版本新,华为云HCE运维主流方案
- 测试环境,必须rpm/yum形式:临时启用openEuler源安装,完成后立刻切回HCE官方源;
-
内网离线场景:联网机下载rpm包,内网
yum localinstall本地安装,不要长期引入第三方yum源。
为什么用 yum 安装 ansible 要选用 openEuler-22.03 的 yum 源 ?
✅一句话结论
HCE 2.0 底层基线就是 openEuler‑22.03‑LTS,华为官方文档明确规定:HCE2.0只能搭配openEuler‑22.03‑LTS扩展源,不能用24.03或者别的版本
HCE2.0 ↔ openEuler‑22.03‑LTS
HCE3.0 ↔ openEuler‑24.03‑LTS‑SP1
1、为什么不能用 openEuler‑24.03 LTS?
-
底层ABI、glibc、Python版本不一致
- HCE2.0:内核5.10、Python3.9、glibc 2.34
- openEuler24.03:内核6.6、Python3.11,系统库版本完全不同
如果添加24.03源,yum会拉取高版本rpm,出现大量依赖冲突、覆盖系统底层库,业务直接崩溃。
- 华为官方不认可跨LTS混用源,出问题不在维保范围
2、为什么选22.03 LTS(而不是20.03、创新版)
-
同源基线,依赖匹配度最高
HCE2.0是基于openEuler‑22.03‑LTS深度定制的云操作系统,软件包依赖链、库版本完全对齐;
openEuler社区的 EPOL源(扩展软件仓库) 里面提供了ansible的rpm包(ansible‑2.9)。
HCE官方自身主仓库没有ansible,只能从同基线的openEuler EPOL获取。
-
必须用LTS长期支持版,不能用半年创新版(22.09/23.09)
创新版生命周期只有6个月,软件包随时下架、缺少长期维护,不适合服务器。
3、两个重要风险点(重点)
1)只是临时借用源安装,不要长期启用
华为文档建议:备份原有hce.repo → 临时添加22.03源,装好rpm后立刻删掉openEuler源,恢复原生HCE源,避免后续yum update混入社区包破坏系统。
2)22.03 EPOL里的ansible版本很老(ansible‑2.9)
- rpm方式得到的是老旧2.9版本
- pip安装可以拿到2.15+新版(你当前的版本)
所以生产首选pip,yum/rpm仅在强制要求rpm包的场景测试使用
4、不要使用CentOS EPEL源
CentOS的rpm包、ABI和HCE/aarch64完全不兼容,强行安装大概率直接损坏系统,严禁添加。
5、两种yum安装最佳实践(官方推荐方式)
方案A(临时repo,测试用)
临时挂载openEuler‑22.03‑LTS的everything+EPOL,安装完成删除repo,恢复HCE原生源。
方案B(更安全,推荐)
联网同架构机器,只下载ansible及其全部依赖rpm包,内网本地yum localinstall,全程不长期引入外部yum源,风险最小。
6、总结
- 选 openEuler‑22.03‑LTS 不是随便挑的,由HCE2.0的系统基线决定,是官方唯一兼容的社区源;
- 选用更高/更低openEuler版本会引发底层库冲突;
- yum安装只能拿到老旧ansible‑2.9;想要新版ansible,放弃yum,使用pip是更稳妥路线。