说说《如何通过Ansible解决:多节点人工采集Node Exporter采集Linux主机的CPU、内存、磁盘和网络指标自动化》

今天翻到一篇不错的技术分享,看完之后自己也琢磨了一下,把思路梳理记录下来。

前言

Prometheus需要通过Node Exporter采集Linux主机的CPU、内存、磁盘和网络指标。服务器数量较少时,可以逐台登录安装;当节点增加到几十台甚至上百台后,人工操作不仅耗时,还容易出现版本不同、目录不一致、服务未启动等麻烦,最终影响监控数据的完整性。

Ansible可以把Node Exporter的下载、解压、用户创建、systemd服务配置和开机自启写入同一个Playbook,再通过主机清单批量下发到多台服务器。新增节点时只需补充Inventory,后续升级版本或修改启动参数也能统一执行,更适合服务器扩容、监控体系初始化和配置标准化场景。

当控制端与目标主机位于不同网络时,可以通过cpolar建立SSH的TCP通道,再由Ansible通过公网域名和端口连接远端设备。正式用时应优先采用SSH密钥认证,避免在Inventory中直接保存明文密码,并先在少量测试节点验证Playbook。

本文将手把手教你编写一个轻量、可复用的Ansible自动化部署方案,从此告别重复劳动,真正实现“监控先行,稳定无忧”。

如果你还想监控家里的电脑,但设备在内网无法直连?别急,文末附赠 cpolar 内网穿透方案,让 Ansible 照样远程部署!

1.在你的虚拟机上安装ansiable

1.1 什么是Ansible?

Ansible是一个开源的 自动化运维工具,由Red Hat赞助开发,用于实现:

  • 配置管理(Configuration Management)
  • 应用部署(Application Deployment)
  • 任务自动化(Task Automation)
  • IT编排(Orchestration)
它最大的特点是:轻松、无代理、基于SSH、用YAML语法。

1.2 Ansible的核心作用

1. 批量执行命令

无需逐台登录服务器,一条命令可在成百上千台机器上同时运行:

1. 统一配置管理

确保所有服务器的配置一致,比如:

  • 安装指定版本的软件(如 Node Exporter、Nginx)
  • 同步配置文件(如 /etc/hosts、prometheus.yml)
  • 创建用户、设置权限、管理服务状态
  • 自动化部署应用
通过 Playbook(YAML 文件)定义部署流程,一键完成麻烦应用上线:

1. 幂等性(Idempotency)

重复执行同一个 Playbook,结果始终一致——没装的会装,已装的不会重复操作,安全可靠。

1. 无需安装客户端(Agentless)

Ansible通过SSH 与目标主机通信,只需控制机安装Ansible,被控机只要有Python 和SSH即可。

1. 支持云和容器编排

可管理AWS、Azure、阿里云等云资源,也能操作Docker、Kubernetes。

1.3 安装ansiale

我这里是ubuntu系统,如果想用centos可以看参考cpolar官网的这篇教程:《别再手动操作了!我用Ansible+cpolar给飞牛OS装了个“遥控器》

登录到 Ubuntu系统,并在APT命令下运行以应用更新:

sudo apt update
sudo apt upgrade -y

安装最新版本的Ansible:

apt install -y ansible

安装完成后,验证ansiable版本:

ansible --version

我们查看一下,有没有启动文件:

ls /etc/ansible

我发现我这里没有,那我们手动配一下,创建ansiable文件:

mkdir -p /etc/ansible

编写hosts文件:

```
cat > /etc/ansible/hosts


今天的内容大概就这些,实际开发中大家还会遇到更多细节,欢迎留言分享自己的经验。

评论 (0)

暂无评论