Ansible 批量运维实战:openEuler 环境一键安装 httpd 服务

前言

在多主机运维场景下,Ansible 可实现批量配置、软件部署等自动化操作,大幅提升运维效率。本文基于 openEuler 操作系统,使用 Ansible 的 dnf 模块批量安装 httpd 服务,并对执行过程中的警告、报错信息进行详细解读,同时给出优化方案,适合 Linux 运维初学者参考。

一、环境说明

  • 控制节点:test01(已安装 Ansible)
  • 被管理节点:多台 openEuler 主机(IP 及主机名已配置在 Ansible 清单)
  • 模块:Ansible dnf 模块
  • 部署软件:httpd(Apache 服务)

二、配置 Ansible 主机清单

编辑 Ansible 默认主机清单文件,添加被管理节点信息:

运行

复制代码
vim /etc/ansible/hosts

在文件中配置对应主机 IP 或主机名,保存退出即可。

三、执行批量安装 httpd 命令

使用 Ansible 的 dnf 模块,指定安装 httpd 为最新版本,并禁用 source 仓库:

运行

复制代码
ansible all -m dnf -a "name=httpd state=latest disablerepo=source"

四、执行结果详细解读

1. 执行成功状态:CHANGED

对应主机:192.168.190.143、192.168.190.144、192.168.190.145含义:目标主机未安装过 httpd 及依赖,Ansible 完成全新安装,操作生效。

2. 报错状态:FAILED!

对应主机:test01、test02、test03报错核心信息:软件包xxx已经安装真实含义:并非执行失败,而是目标主机已存在 httpd 及其依赖包,dnf 不允许重复安装,属于正常提示。

3. Python 解释器警告

复制代码
[WARNING]: Platform linux on host ... is using the discovered Python interpreter

该警告仅为 Ansible 自动识别 Python 路径的提示,不影响任何功能,可直接忽略。

这个警告完全不用管,不影响任何功能!


Ps.你真正想知道的:我成功了吗?

成功了!

  • 远程机器都装上了
  • 本地机器本来就有
  • 整个批量部署任务达成目标

五、如果你想让 "已安装" 的机器不报错、变绿色(正常)

把命令里的

复制代码
state=latest

改成

复制代码
state=present

最终命令:

运行

复制代码
ansible all -m dnf -a "name=httpd state=present disablerepo=source"

这样:

  • 没装 → 安装

  • 已装 → 不报错,显示 SUCCESS 绿色


六、知识补充

Ansible dnf 模块中 state=latest 与 state=present 区别

在使用 Ansible 批量安装软件时,state 参数决定了包管理的最终状态:

  1. state=latest 表示确保目标软件为最新版本。若软件已安装且为最新版,dnf 会因无法重复安装返回 FAILED 错误;若版本较旧,则自动升级至最新版。适用于批量升级场景。
  2. state=present 表示仅确保软件已安装即可。若未安装则自动安装,若已安装则不执行任何操作,返回 SUCCESS 绿色状态。适用于环境初始化、批量部署场景。

七、总结

  1. Ansible dnf 模块可在 openEuler 系统中高效批量部署软件;
  2. FAILED 不一定是故障,需结合报错信息判断是否为包已存在;
  3. 使用state=present可适配更多场景,避免不必要的报错提示;
  4. Python 解释器警告为正常提示,无需处理。
相关推荐
DianSan_ERP20 小时前
电商架构演进:如何在高并发场景下实现多平台API的标准化履约?
运维·前端·网络·安全·架构·自动化
恒53920 小时前
Linux文件系统I
linux·运维·服务器
阿成学长_Cain20 小时前
Linux ipcs 命令超全详解:查看共享内存 / 消息队列 / 信号量,IPC 运维必备
linux·运维·服务器·网络·数据库
运维老郭1 天前
【K8s运维实战】Kubernetes临时存储卷实战:emptyDir核心用法与gitRepo弃用迁移指南
运维·云原生·kubernetes
珠海西格电力1 天前
云边端协同架构:零碳园区管理系统的技术底座
大数据·运维·人工智能·算法·架构·能源
阿成学长_Cain1 天前
Linux dirs命令详解|Bash目录堆栈管理快速切换目录实战教程
linux·运维·前端·数据库
小羊Yveesss1 天前
2026年微信小程序后端怎么搭建?后台、数据、接口和运维怎么选
运维·微信小程序·小程序
想你依然心痛1 天前
嵌入式Linux安全加固:SELinux、Capabilities与Seccomp——强制访问控制与沙箱
linux·运维·安全
AAA@峥1 天前
容器数据不丢失:Docker 分层存储 + Volume 共享、备份迁移完整指南
运维·docker·容器
MDM.Plus1 天前
苹果MDM技术演进:从远程控制到设备信任体系的构建
运维·服务器·安全·ios·mdm·手机店