当前位置: 首页 > backend >正文

ansible playbook 实战案例roles | 实现基于node_exporter的节点部署

文章目录

  • 一、核心功能描述
  • 二、roles内容
    • 2.1 文件结构
    • 2.2 主配置文件
    • 2.3 tasks文件内容
    • 2.4 vars文件内容

免费个人运维知识库,欢迎您的订阅:literator_ray.flowus.cn

一、核心功能描述

这个 Ansible Role 的核心功能是:​自动化部署 Prometheus Node Exporter 监控代理到目标主机,并完成全套运行环境配置。

  1. 软件部署与配置

    • 自动下载并解压指定版本的 Node Exporter 二进制包(版本可配置)

    • 创建版本无关的符号链接 /etc/node_exporter 指向实际安装目录

    • 监听端口可配置(示例中为 29100)

  2. 服务管理

    • 创建 systemd 服务单元文件 zk_node_exporter.service

    • 配置服务启动参数(包含监听端口配置)

    • 实现服务自启动:systemctl daemon-reload + 启用服务

  3. 安全策略

    • 自动配置 firewalld 防火墙规则

    • 实现 IP 白名单机制:仅允许指定 IP(192.141.106.5)访问监控端口

    • 端口可配置(示例中为 29100)

  4. 变量化管理

    • 通过 node_exporter_version 变量控制软件版本

    • 服务端口通过 ExecStart 参数可配置(当前硬编码为 29100)

    • 防火墙规则中的端口和 IP 可扩展(当前为固定值)

可以根据自己的实际需求修改脚本

二、roles内容

2.1 文件结构

node-exporter
|-- files
|   |-- create_service.sh
|   `-- node_exporter-1.3.1.linux-amd64.tar.gz
|-- tasks
|   |-- enable.yml
|   |-- firewalld.yml
|   |-- link.yml
|   |-- main.yml
|   |-- service.yml
|   `-- unarchive.yml
`-- vars`-- main.yml3 directories, 9 files

2.2 主配置文件

---
- hosts: allremote_user: rootserial: 5roles:- node-exporter

2.3 tasks文件内容

  • main.yml
- include: unarchive.yml
- include: link.yml
- include: service.yml
- include: firewalld.yml
- include: enable.yml
  • include: unarchive.yml
- name: unarchive node-exporterunarchive: src=node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz dest=/etc/
  • include: link.yml
- name: create node-exporter linkfile: src=/etc/node_exporter-{{ node_exporter_version }}.linux-amd64 path=/etc/node_exporter state=link
  • include: service.yml(可以优化,用file模块实现)
- name: create servicescript: create_service.sh
  • include: firewalld.yml(可以优化,用firewalld模块实现)
- name: create firewalld rulesshell: firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.141.106.5" port protocol="tcp" port="29100" accept';firewall-cmd --reload
  • include: enable.yml
- name: daemon-reloadshell: systemctl daemon-reload
- name: enable & startservice: name=zk_node_exporter state=started enabled=yes

2.4 vars文件内容

  • main.yml
node_exporter_version: 1.3.1
  • files文件内容(可以将此脚本优化成service文件,用file模块实现复制)

create_service.sh

#!/bin/bash
cat > /usr/lib/systemd/system/zk_node_exporter.service <<EOF
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target[Service]
Type=simple
ExecStart=/etc/node_exporter/node_exporter --web.listen-address=:29100
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

如果你不请什么是ansible中的角色,动动你的小手,跳转过去看看呗“roles角色”

请不要以此视为定论,这只是我的个人经验

http://www.xdnf.cn/news/18211.html

相关文章:

  • AV1视频编码器2024-2025技术进展与行业应用分析
  • scikit-learn/sklearn学习|变量去中心化和标准化
  • 【iOS】NSRunLoop
  • PyCharm2025无法启动Powershell.exe的解决办法
  • Google Chrome 扩展不受信任 - 不受支持的清单版本 解决方案
  • 苹果XR芯片介绍
  • 【GPT入门】第51课 将hf模型转换为GGUF
  • MyBatis--缓存详解
  • ACE - 阿里开源的一站式AI图像生成和编辑模型
  • C++排序算法学习笔记
  • 【数据结构】用堆解决TOPK问题
  • Ansible 配置并行 - 项目管理笔记
  • Python入门第11课:Python网络请求入门,使用requests库轻松获取网页数据
  • Leetcode 深度优先搜索 (7)
  • Jenkins项目发布基础
  • UE5 使用RVT制作地形材质融合
  • 网络编程day3
  • leetcode2248. 多个数组求交集
  • Android13车机系统自定义系统栏显示策略之状态栏下拉异常
  • java八股文-中间件-参考回答
  • Commons-io
  • 微算法科技(NASDAQ: MLGO)研究利用PBFT中的动态视图变换机制,实现区块链系统高效运转
  • 2025年5月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(六)
  • 笔试——Day43
  • HJ4 字符串分隔
  • C++高频知识点(二十七)
  • CentOS安装SNMPWalk
  • 无畏契约手游上线!手机远控模拟器畅玩、抢先注册稀有ID!
  • Linux的基本操作
  • 遥感amp;机器学习入门实战教程 | Sklearn 案例③:PCA + SVM / 随机森林 对比与调参