Node Exporter还在逐台安装?用Ansible批量部署省下重复操作
前言服务器数量较少时逐台登录并安装Node Exporter尚且可以接受。一旦主机扩展到几十台手动下载文件、创建用户、编写systemd服务并检查运行状态就容易出现版本不一致、路径不同和遗漏配置等问题。Ansible可以通过SSH连接目标主机把安装步骤整理成可重复执行的Playbook。控制端只需要维护Inventory、变量和任务文件就能向一组Linux主机统一下发部署操作。本文将在Ubuntu控制机中安装Ansible编写Node Exporter的systemd模板和部署Playbook完成下载、解压、用户创建、服务启动及开机自启。部署后还会在目标主机中检查Node Exporter服务状态。对于不在同一局域网中的目标主机本文还会使用cpolar映射SSH端口让Ansible能够通过公网TCP地址连接远程设备。需要注意的是这一步解决的是远程部署链路后续还要单独确认Prometheus能否访问Node Exporter的9100端口。1.在你的虚拟机上安装ansiable1.1 什么是AnsibleAnsible是一个开源的 自动化运维工具由Red Hat赞助开发用于实现配置管理Configuration Management应用部署Application Deployment任务自动化Task AutomationIT编排Orchestration它最大的特点是简单、无代理、基于SSH、使用YAML语法。1.2 Ansible的核心作用批量执行命令无需逐台登录服务器一条命令可在成百上千台机器上同时运行统一配置管理确保所有服务器的配置一致比如安装指定版本的软件如 Node Exporter、Nginx同步配置文件如 /etc/hosts、prometheus.yml创建用户、设置权限、管理服务状态自动化部署应用通过 PlaybookYAML 文件定义部署流程一键完成复杂应用上线幂等性Idempotency重复执行同一个 Playbook结果始终一致——没装的会装已装的不会重复操作安全可靠。无需安装客户端AgentlessAnsible通过SSH 与目标主机通信只需控制机安装Ansible被控机只要有Python 和SSH即可。支持云和容器编排可管理AWS、Azure、阿里云等云资源也能操作Docker、Kubernetes。1.3 安装ansiale我这里是ubuntu系统如果想使用centos可以看参考cpolar官网的这篇教程《别再手动操作了我用Ansiblecpolar给飞牛OS装了个“遥控器》登录到 Ubuntu系统并在APT命令下运行以应用更新sudoaptupdatesudoaptupgrade-y安装最新版本的Ansibleaptinstall-yansible安装完成后验证ansiable版本ansible--version我们查看一下有没有启动文件ls/etc/ansible我发现我这里没有那我们手动配一下创建ansiable文件mkdir-p/etc/ansible编写hosts文件cat/etc/ansible/hostsEOF [local] localhost ansible_connectionlocal EOF编写ansiable.cfg文件cat/etc/ansible/ansible.cfgEOF [defaults] inventory /etc/ansible/hosts host_key_checking False remote_user root stdout_callback yaml EOF验证是否成功ansible localhost-mping2.配置ansiable文件搞定Node Exporter部署确保你在playbook所在目录假设是 /etc/ansiblecd/etc/ansible创建templates目录mkdir-ptemplates创建服务模板文件cattemplates/node_exporter.service.j2EOF [Unit] DescriptionNode Exporter Afternetwork.target [Service Usernode_exporter Groupnode_exporter Typesimple ExecStart{{ install_dir }}/node_exporter --collector.systemd --collector.processes Restarton-failure RestartSec5 [Install] WantedBymulti-user.target EOF首先我们来过一下安装node_exporter基本步骤mkdir/shancd/shancurl-LOhttps://github.com/prometheus/node_exporter/releases/download/v1.10.2/node_exporter-1.10.2.linux-amd64.tar.gztar-zxvfnode_exporter-1.10.2.linux-amd64.tar.gzrm-rfnode_exporter-1.10.2.linux-amd64.tar.gzmvnode_exporter-1.10.2.linux-amd64/ node_exportersudovi/etc/systemd/system/node_exporter.service[Unit]DescriptionNode ExporterDocumentationhttps://github.com/prometheus/node_exporterAfternetwork.target[Service]Usernode_exporterGroupnode_exporterTypesimpleExecStart/shan/node_exporter/node_exporter[Install]WantedBydefault.targetuseradd--no-create-home--shell/bin/false node_exportersystemctl start node_exporter systemctlenablenode_exporter手动操作还好但是一键部署是不是感觉头都大了别急我这边已经研究好啦只需要你复制粘贴就能操作成功编辑hosts文件加入你所要监控的ip和他的用户名及密码[test] ip ansible_ssh_user用户名 ansible_ssh_pass密码编辑命令yml文件--- - name: 安装node_exporter hosts:testbecome:yesvars: node_exporter_version:1.8.2node_exporter_url:https://ghproxy.net/https://github.com/prometheus/node_exporter/releases/download/v{{ node_exporter_version }}/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gzinstall_dir:/shantasks: - name: 创建存储目录 file: path:{{ install_dir }}state: directory mode:0755- name: 下载node_exporter get_url: url:{{ node_exporter_url }}dest:{{ install_dir }}/node_exporter.tar.gzmode:0644timeout:30retries:3delay:10- name: 解压node_exporter unarchive: src:{{ install_dir }}/node_exporter.tar.gzdest:{{ install_dir }}remote_src:yes- name: 清理压缩包 file: path:{{ install_dir }}/node_exporter.tar.gzstate: absent - name: 重命名解压目录为 node_exporter command:mv{{ install_dir }}/node_exporter-{{ node_exporter_version }}.linux-amd64{{ install_dir }}/node_exporterargs: creates:{{ install_dir }}/node_exporter- name: 删除旧目录 file: path:{{ install_dir }}/node_exporter-{{ node_exporter_version }}.linux-amd64state: absent - name: 创建专用用户 user: name: node_exporter system:yesshell: /sbin/nologin createhome: no - name: 配置systemd服务 template: src: node_exporter.service.j2 dest: /etc/systemd/system/node_exporter.service owner: root group: root mode:0644- name: 重载systemd配置 systemd: daemon_reload:yes- name: 启动并启用node_exporter服务 systemd: name: node_exporter enabled:yesstate: started然后使用ansible-playbook执行就好啦ansible-playbook node_exporter.yml切换到被安装的IP下验证是否安装成功systemctl status node_exporter至此我们通过ansible配置node_exporter算是成功啦我们后续可以在hosts添加上百台主机统一安装。那么问题来了目前我们只是在统一局域网下可以部署那么我们想部署家里电脑想监控家里电脑的指标怎么办呢别急cpolar来拯救你3.安装cpolar实现随时随地开发cpolar 可以将你本地电脑中的服务如 SSH、Web、数据库映射到公网。即使你在家里或外出时也可以通过公网地址连接回本地运行的开发环境。❤️以下是安装cpolar步骤使用一键脚本安装命令sudocurlhttps://get.cpolar.sh|sh安装完成后执行下方命令查看cpolar服务状态如图所示即为正常启动sudosystemctl status cpolarCpolar安装和成功启动服务后在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可打开浏览器访问本地9200端口使用cpolar账户密码登录即可,登录后即可对隧道进行管理。4.配置公网地址通过配置你可以在本地 WSL 或 Linux 系统上运行 SSH 服务并通过 Cpolar 将其映射到公网从而实现从任意设备远程连接开发环境的目的。隧道名称可自定义本例使用了:ssh注意不要与已有的隧道名称重复协议tcp本地地址22端口类型随机临时TCP端口地区China Top创建成功后打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址接下来就可以在其他电脑或者移动端设备异地上使用任意一个地址在终端中访问即可。tcp 表示使用的协议类型2.tcp.cpolar.top是 Cpolar 提供的域名16198是随机分配的公网端口号通过 Cpolar 提供的公网地址和端口就可以使用ansible进行远程部署啦接下来我们操作一下。修改hosts配置文件[dbservers]2.tcp.cpolar.topansible_userrootansible_port16198ansible_password***接下来我们执行配置node_exporter文件ansible-playbook node_exporter.yml执行成功我们去对应主机查看node_exporter服务是否开启成功我们可以看见目标主机已经成功安装~5.保留固定TCP公网地址使用cpolar为其配置TCP地址该地址为固定地址不会随机变化。选择区域和描述有一个下拉菜单当前选择的是“China VIP”。右侧输入框用于填写描述信息。保留按钮在右侧有一个橙色的“保留”按钮点击该按钮可以保留所选的TCP地址。列表中显示了一条已保留的TCP地址记录。地区显示为“China VIP”。地址显示为“15.tcp.cpolar.top:13633”。登录cpolar web UI管理界面点击左侧仪表盘的隧道管理——隧道列表找到所要配置的隧道ssh点击右侧的编辑。修改隧道信息将保留成功的TCP端口配置到隧道中。端口类型选择固定TCP端口预留的TCP地址填写保留成功的TCP地址点击更新。创建完成后打开在线隧道列表此时可以看到随机的公网地址已经发生变化地址名称也变成了保留和固定的TCP地址。这样我们的ansible操作就没有任何的阻碍啦总结完成以上配置后Ansible控制机已经可以根据Inventory中的主机信息执行Playbook并向目标Linux服务器部署Node Exporter。Playbook负责创建目录、下载文件、建立运行用户、生成systemd服务并启动和启用Node Exporter。通过cpolar映射目标主机的22端口后即使设备位于另一个局域网Ansible也可以使用公网TCP地址和端口建立SSH连接。配置固定TCP地址后可以避免临时端口变化导致Inventory中的连接信息失效。不过远程安装成功并不等于Prometheus已经开始监控这台主机。还需要确认Node Exporter实际监听的9100端口可以被Prometheus访问并将对应地址加入Prometheus的scrape_configs。最后应在Prometheus的Targets页面确认目标状态为UP。当前模板中需要修正systemd段落格式和ExecStart路径同时统一Node Exporter版本。正式批量执行前建议先在一台测试主机验证服务文件、二进制路径和/metrics页面再逐步扩大主机组避免错误同时影响大量设备。Inventory不建议直接保存root账号和明文密码。长期使用时应改用普通运维账号、SSH密钥和become提权并通过Ansible Vault保存密码等敏感变量。关闭主机密钥校验虽然操作方便但会降低SSH连接的身份验证能力也不适合作为长期默认配置。如果目标设备包含ARM或其他架构还应根据主机架构选择对应的Node Exporter安装包。下载文件最好增加版本固定和校验机制避免第三方代理地址或镜像内容变化带来部署风险。

相关新闻

Windows11/10 如何撤销文件剪切粘贴?6 种系统自带解决办法

Windows11/10 如何撤销文件剪切粘贴?6 种系统自带解决办法

📚 本篇教程整理了 6 种实用方法,可以帮你撤销误操作的剪切粘贴,找回 Windows10、Windows11 系统下丢失的文件与文件夹。 复制和剪切 粘贴在 Windows 当中属于两种不一样的操作。按下 Ctrl X 再执行 Ctrl V 属于文件移动,系统不…

2026/9/23 23:04:55 阅读更多 →
Python字符串方法

Python字符串方法

Python字符串方法不会修改原字符串,所有操作均返回新字符串。字符串作为不可变对象,任何方法调用都生成新副本而非原地修改。以下是核心方法分类详解,附可运行示例: 一、基础操作 1. 长度统计 len(s):返回字符串字符…

2026/9/23 23:44:04 阅读更多 →
d2dx终极指南:三步让《暗黑破坏神2》在现代PC上焕发新生

d2dx终极指南:三步让《暗黑破坏神2》在现代PC上焕发新生

d2dx终极指南:三步让《暗黑破坏神2》在现代PC上焕发新生 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 还在为经…

2026/9/23 23:43:39 阅读更多 →

最新新闻

Nasiko A2A Registry 设计解析:把“Agent 发现“本身做成一个 A2A Agent

Nasiko A2A Registry 设计解析:把“Agent 发现“本身做成一个 A2A Agent

【免费下载链接】nasiko Developer Control Plane for your AI Agents 项目地址: https://gitcode.com/gh_mirrors/na/nasiko 点击查看 免费下载 在 Nasiko(Developer Control Plane for your AI Agents)中,Agent 之间的通信、发…

2026/9/25 22:57:20 阅读更多 →
LDA主题词提取实战:从原理到Python实现与调参

LDA主题词提取实战:从原理到Python实现与调参

简介:面向自然语言处理与文本挖掘场景的LDA主题建模与关键词提取资源包,基于潜在狄利克雷分配模型,适合需要学习主题模型原理或快速搭建文本分析工具的开发者和研究者,可用于从文档集合中自动发现隐藏主题并提取代表性词语。压缩包…

2026/9/25 22:57:20 阅读更多 →
从ProX到UltraX:LLM预训练数据精炼方法演进史与UltraX-0.6B精炼模型完整详解

从ProX到UltraX:LLM预训练数据精炼方法演进史与UltraX-0.6B精炼模型完整详解

从ProX到UltraX:LLM预训练数据精炼方法演进史与UltraX-0.6B精炼模型完整详解 【免费下载链接】UltraX-Preview 项目地址: https://ai.gitcode.com/OpenBMB/UltraX-Preview OpenBMB 开源社区发布的 UltraX-Preview 数据集是 LLM 预训练数据精炼的最新成果&am…

2026/9/25 22:57:20 阅读更多 →
S型曲线Demo:手把手理解扩散模型DDPM原理与实现

S型曲线Demo:手把手理解扩散模型DDPM原理与实现

简介:面向机器学习初学者的扩散模型微型demo,通过生成S型曲线演示扩散模型从随机噪声逐步还原数据分布的核心过程,特别适合刚接触生成模型、想绕过复杂公式直接看代码逻辑的读者。压缩包共8个文件,大小约9.74MB,主程序…

2026/9/25 22:57:20 阅读更多 →
Robomongo 内嵌 esprima 2.7.3:ECMAScript 解析器在 MongoDB Shell 脚本解析中的集成与应用

Robomongo 内嵌 esprima 2.7.3:ECMAScript 解析器在 MongoDB Shell 脚本解析中的集成与应用

数据库客户端桌面应用 【免费下载链接】robomongo Native cross-platform MongoDB management tool 项目地址: https://gitcode.com/gh_mirrors/ro/robomongo 点击查看 免费下载 Robomongo(即 Robo 3T)是一款原生的跨平台 MongoDB 管理工具&…

2026/9/25 22:57:20 阅读更多 →
rsuite Calendar 自定义单元格样式:深入解析 cellClassName 的用法与实现原理

rsuite Calendar 自定义单元格样式:深入解析 cellClassName 的用法与实现原理

前端UI组件 【免费下载链接】rsuite 🧱 A suite of React components . 项目地址: https://gitcode.com/gh_mirrors/rs/rsuite 点击查看 免费下载 导读 本文围绕 rsuite 的 Calendar(日历)组件,重点讲解如何通过 ce…

2026/9/25 22:56:19 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →