找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1972

积分

0

好友

282

主题
发表于 2025-12-7 20:55:19 | 查看: 34| 回复: 0

公司有超过700台服务器分散在不同设备上,面临历史遗留服务器维护困难的问题。运维团队需要统一监控这些服务器的存储状态,其中Linux服务器的监控方案选用了Ansible运维工具。本文将通过一个具体场景,介绍如何从零开始部署和配置Ansible,实现对Linux服务器的自动化监控。

为什么选择Ansible进行服务器监控?

Ansible基于SSH协议工作,无需在目标服务器上安装任何代理(Agent),通过配置免密登录即可实现对大批量Linux主机的集中管理和命令下发,架构简单且易于维护。

Ansible控制节点部署

我们选择CentOS 7.6作为Ansible控制服务器的操作系统。首先更新系统软件包列表:

yum update -y

更新完成后,安装EPEL(Extra Packages for Enterprise Linux)扩展源,该源包含了Ansible软件包:

yum -y install epel-release

最后,安装Ansible自动化工具:

yum -y install ansible

安装完成后,可以通过ansible --version命令验证安装是否成功,如有版本信息回显则说明安装正常。
Ansible版本验证

Ansible主机清单配置

Ansible通过/etc/ansible/hosts文件来管理需要操作的主机列表。只有在此文件中定义的主机才能被Ansible调用。文件格式支持单台主机或主机组。

# 方法1:定义单台主机
192.168.1.100

# 方法2:定义主机组,组名为‘web_servers’
[web_servers]
192.168.1.101
192.168.1.102

如下图所示,我们已将两个IP地址添加到了名为wfgCentos7的主机组中。
Ansible hosts文件配置

配置SSH免密登录

为了让Ansible控制节点能无缝连接被管主机,需要配置基于密钥的SSH免密登录

首先,在Ansible控制节点生成一对无密码的RSA密钥对(注意使用英文引号):

ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ''

然后,使用ssh-copy-id命令将公钥分发到目标主机。如果不指定用户,默认会使用当前控制节点的用户名(此处为root)进行登录。

ssh-copy-id 远程主机IP

执行命令后输入目标主机的密码。当出现“Number of key(s) added: 1”的提示时,表示密钥同步成功,已实现免密登录。
SSH密钥同步成功

使用Ansible执行自动化命令

完成上述配置后,即可开始使用Ansible对主机进行批量操作。

首先,测试与wfgCentos7主机组的连通性,使用ping模块:

ansible wfgCentos7 -m ping

如下图所示,所有主机均返回pong,表示SSH连接与Ansible通信正常。
Ansible ping模块测试

接着,我们就可以执行实际的监控命令了。例如,使用command模块(-a参数)批量查看所有主机的磁盘使用情况:

# -a 参数后的引号内可执行任意合法的Linux命令
ansible wfgCentos7 -a "df -h"

执行结果将返回组内每台服务器的磁盘空间信息,从而实现了存储状态的集中采集与监控。
批量执行df -h命令结果

以上便是利用Ansible实现Linux服务器基础监控的完整流程。通过主机清单管理和SSH免密登录,Ansible能够极大地简化对大规模服务器集群的日常运维与状态收集工作。

Ansible github 开源仓库:ansible/ansible




上一篇:基于SpringBoot的BallCat框架实战:快速构建企业级后台管理系统
下一篇:《深入理解计算机系统》深度解析:中文技术书籍的平替挑战与思考
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-11 11:55 , Processed in 0.210433 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表