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 解释器警告为正常提示,无需处理。
相关推荐
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦3 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj3 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
lsyeei3 天前
linux 系统目录详解
linux·运维·服务器