今天翻到一篇不错的技术分享,看完之后自己也琢磨了一下,把思路梳理记录下来。
前言
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)
1.2 Ansible的核心作用
1. 批量执行命令
无需逐台登录服务器,一条命令可在成百上千台机器上同时运行:
1. 统一配置管理
确保所有服务器的配置一致,比如:
- 安装指定版本的软件(如 Node Exporter、Nginx)
- 同步配置文件(如 /etc/hosts、prometheus.yml)
- 创建用户、设置权限、管理服务状态
- 自动化部署应用
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)
暂无评论