文章目录

  • 一、核心功能描述
  • 二、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.pswp.cn/web/93993.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93993.shtml
英文地址,请注明出处:http://en.pswp.cn/web/93993.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET Core MongoDB 查询数据异常及解决

.NET Core 查询 MongoDB异常消息Element _class does not match any field or property of class WebApiServer.Model.Enity.Ypxxx.图中写的修改实际是查询分页出现的异常&#xff0c;异常是查询转换为List<T>时出现的&#xff1a; 这个错误通常发生在MongoDB文档中包含的…

政策技术双轮驱动智慧灯杆市场扩容,塔能科技破解行业痛点

在新型城市基础设施建设不断加速&#xff0c;以及“双碳”战略持续深化这样的双重背景之下&#xff0c;智慧灯杆市场恰恰迎来了政策红利得以释放、技术出现迭代突破并且需求在持续升级的极为难得的黄金发展时期。智慧城市建设 的核心承载从国家层面所开展的全域智能化改造规划&…

JetBrains Mono字体

好的,我们来详细解析一下 JetBrains Mono 的 8 种主要字体风格(实际上官方提供了 9 种字重,但通常我们讨论其核心风格)及其区别。 这些风格的区别主要体现在两个方面:字重 和 字形。 核心区别:字重 字重就是字体的粗细程度。JetBrains Mono 提供了从细到极粗的多种选择…

MySQL 分页查询:用 LIMIT 高效处理大量数据

MySQL 分页查询&#xff1a;用 LIMIT 高效处理大量数据 在实际开发中&#xff0c;当查询结果包含成百上千条记录时&#xff0c;一次性展示所有数据会导致加载缓慢、用户体验差。分页查询能将数据分段展示&#xff0c;既减轻服务器压力&#xff0c;又方便用户浏览。MySQL 中通过…

GraphQL 与 REST 在微服务架构中的对比与设计实践

GraphQL 与 REST 在微服务架构中的对比与设计实践 随着微服务架构的普及&#xff0c;API 设计已经成为系统性能、可维护性和开发效率的关键。REST&#xff08;Representational State Transfer&#xff09;作为传统的无状态架构风格&#xff0c;拥有简单、成熟的生态&#xff1…

WebSocket通信:sockjs与stomp.js的完美搭档

sockjs 和 stomp.js 是 WebSocket 通信场景中功能互补的两个库,它们的结合能解决实际开发中的关键问题,因此常被一起使用。 1. 两者的核心作用与联系 sockjs:是一个 传输层库,解决的是“如何在各种环境下建立可靠的双向通信连接”的问题。 WebSocket 协议本身存在兼容性限…

元宇宙的网络基础设施:5G 与 6G 的关键作用

1 5G 技术对元宇宙的支撑作用1.1 高带宽保障沉浸式内容传输5G 技术的超大带宽特性为元宇宙的海量数据传输提供了基础支撑。元宇宙中的沉浸式体验依赖于高清视频、3D 模型、实时交互数据等大容量内容&#xff0c;普通 4G 网络的带宽&#xff08;约 100Mbps&#xff09;难以满足需…

【39页PPT】大模型DeepSeek在运维场景中的应用(附下载方式)

篇幅所限&#xff0c;本文只提供部分资料内容&#xff0c;完整资料请看下面链接 https://download.csdn.net/download/2501_92808811/91694206 资料解读&#xff1a;【39页PPT】大模型DeepSeek在运维场景中的应用 详细资料请看本解读文章的最后内容。大模型技术在当下的科技领…

集成电路学习:什么是Template Matching模版匹配

Template Matching:模版匹配 Template Matching(模版匹配)是一种在图像处理中广泛使用的技术,主要用于在一幅大图像中搜寻与给定模板图像最相似的区域。以下是对模版匹配的详细介绍: 一、定义与原理 模版匹配是一种最原始、最基本的模式识别方法,它通过比较模板图…

Python零基础30天速通(小白定制视频教程版)

概述 还在为 Python 入门犯难&#xff1f;怕枯燥的代码让学习没动力&#xff1f;别担心&#xff01;专为零基础小白打造的 Python 30 天速通课程 重磅登场&#xff5e;视频资料&#xff1a;https://pan.quark.cn/s/2931af88b68a 这门课从 Python 核心基础入手 基础语法全覆盖&a…

leetcode1004 最大连续1的个数

一、题目描述二、解题思路采用双指针的方法来解决这个问题。定义变量countzero来记录窗口内0的数量&#xff0c;当countzero大于k时&#xff0c;窗口收缩&#xff0c;left移动到窗口内第一个0的后面一个位置&#xff0c;将这个弹出来的“翻转机会”让给right指向的数&#xff0…

超越按钮的操控:语音唤醒的无人机群体意识

引言&#xff1a;无人机技术发展的新方向近年来&#xff0c;无人机技术已经从单纯的飞行平台逐步发展为集感知、决策、执行于一体的智能系统。随着人工智能技术的快速发展&#xff0c;特别是大语言模型和计算机视觉技术的突破&#xff0c;无人机正迎来新一轮智能化升级的机遇。…

【OpenGL】LearnOpenGL学习笔记12 - 网格模型绘制

上接&#xff1a;https://blog.csdn.net/weixin_44506615/article/details/150465200?spm1001.2014.3001.5501 完整代码&#xff1a;https://gitee.com/Duo1J/learn-open-gl 接下来我们通过加载模型文件的方式来导入我们要渲染的模型&#xff0c;取代之前的硬编码顶点的箱子 …

leetcode_238 除自身以外的数组乘积

1. 题意 除了自身外的乘积&#xff0c;题目要求不能用除法做。 2. 题解 不用除法做&#xff0c;那就用前后缀分解的方法做。 时间复杂度O(n)O(n)O(n) 两个数组记录前后缀乘积 class Solution { public:vector<int> productExceptSelf(vector<int>& nums) {int …

从0开始玩转soarm101 下篇

上篇我们从0开始构建了基本的环境&#xff0c;这篇我们继续后续的标定&#xff0c;遥操作&#xff0c;录制数据&#xff0c;上传&#xff0c;训练。 环境&#xff1a;显卡技嘉的5060&#xff0c;cpui5-13490f&#xff0c;主板技嘉b760m gaming&#xff0c;双系统ubuntu2204&am…

学习设计模式《二十三》——桥接模式

一、基础概念 桥接模式的本质是【分离抽象和实现】。 桥接模式的定义&#xff1a;将抽象部分与它的实现部分分离&#xff0c;使它们都可以独立地变化。 认识桥接模式序号认识桥接模式说明1什么是桥接通俗点说就是在不同的东西之间搭一个桥&#xff0c;让它们能够连接起来&a…

使用Python 创建虚拟环境的两种方式

使用Python 创建虚拟环境的两种方式&#xff1a; 方式一&#xff1a;使用官方标准库 venv (Python 3.3 推荐) 创建&#xff1a; # 语法&#xff1a;python -m venv <虚拟环境名称> python -m venv my_project_env指定Python解释器版本&#xff08;如果你的系统有多个Pyth…

Android 开发问题:android:marginTop=“20px“ 属性不生效

android:marginTop"20px"在 Android 开发中&#xff0c;XML 布局文件中&#xff0c;上述属性不生效 问题原因 margin 系列的属性需要加上 layout_ 前缀layout_marginTop&#xff1a;顶部边距layout_marginBottom&#xff1a;底部边距layout_marginLeft&#xff1a;左…

【P18 3-10】OpenCV Python—— 鼠标控制,鼠标回调函数(鼠标移动、按下、。。。),鼠标绘制基本图形(直线、圆、矩形)

P18 3-10 1 鼠标回调函数2 鼠标绘制基本图形&#xff08;直线、圆、矩形&#xff09;2.1 图形绘制教程2.2 鼠标绘制基本图形&#xff08;直线、圆、矩形&#xff09;代码实现1 鼠标回调函数 import cv2 import numpy as npdef mouse_callback(event,x,y,flage,userdata):print(…

微服务如何集成swagger3

文章目录引言一、项目结构二、顶级pom依赖准备三、common-swagger模块四、gateway模块配置五、结果演示引言 我们在用springboot开发应用时&#xff0c;经常使用swagger来作为我们的接口文档可视化工具&#xff0c;方便前端同事调用&#xff0c;集成也是比较简单的&#xff0c…