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 解释器警告为正常提示,无需处理。
相关推荐
ulias2122 小时前
Linux中的开发工具
linux·运维·服务器·开发语言·c++·windows
wanhengidc2 小时前
服务器如何防范爬虫攻击?
运维·服务器·网络·爬虫·游戏·智能手机
mobai72 小时前
使用pyang将yang模型转换为xml
xml·运维·服务器
捞的不谈~2 小时前
解决在Ubuntu系统下使用Lucid 相机(HTR003S-001)-Ubuntu 20.04系统遇到GLIBC和GLIBCXX版本不兼容的问题
linux·运维·ubuntu
洛菡夕2 小时前
LVS+Keepalived高可用群集
运维·服务器·lvs
智能运维指南2 小时前
2026 运维监控选型指南:全栈智能可观测平台如何选?
运维
卢傢蕊2 小时前
LVS+Keepalived 高可用群集
linux·运维·lvs·keepalived
Heart_to_Yang2 小时前
TPLink路由器虚拟专用网端口映射故障问题,端口转发无效
运维·服务器·网络
艾莉丝努力练剑2 小时前
【Linux线程】Linux系统多线程(六):<线程同步与互斥>线程同步(上)
java·linux·运维·服务器·c++·学习·线程