尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
ansible-playbook部署zabbix
变量文件的基础使用文章目录变量文件的基础使用变量文件的基础使用目录创建用户管理 Playbook变量文件的加载位置使用 Ansible Vault 加密变量加密变量文件执行加密的 Playbook查看与解密组织变量主机变量与组变量目录结构组变量示例实战使用 Playbook 部署 Zabbix 监控系统环境说明安装 Ansible MySQL Collection完整 Playbookzabbix.yml注意事项变量文件的基础使用目录1. 变量文件的基础使用1.1 创建用户管理 Playbook1.2 变量文件的加载位置2. 使用 Ansible Vault 加密变量2.1 加密变量文件2.2 执行加密的 Playbook2.3 查看与解密3. 组织变量主机变量与组变量3.1 目录结构3.2 组变量示例4. 实战使用 Playbook 部署 Zabbix 监控系统4.1 环境说明4.2 安装 Ansible MySQL Collection4.3 完整 Playbookzabbix.yml4.4 注意事项创建用户管理 Playbook假设我们需要为一组 Web 服务器批量创建用户可以将用户列表独立存放在变量文件中便于维护。Playbook 文件user.ymlvim user.yml----hosts:webserversgather_facts:notasks:-name:Add the usersansible.builtin.user:name:{{ item.user }}password:{{ item.pass | password_hash(sha512) }}state:presentloop:{{ userlist }}变量文件userlist.ymlvim userlist.yml---userlist:-{user:user1,pass:pass1}-{user:user2,pass:pass2}-{user:user3,pass:pass3}执行 Playbook假设 webservers 组中只包含 node1ansible-playbook user.yml变量文件的加载位置默认情况下Ansible 会在 Playbook 所在目录寻找变量文件需通过 vars_files 或 include_vars 加载。若未显式指定路径则需将变量文件放在对应的 host_vars 或 group_vars 目录下见下文。使用 Ansible Vault 加密变量mkdirhosts_varscdhosts_varsmkdirnode1cdnode1cd..cd..cpuserlist.yml ./host_vars/node1/vault加密变量文件为了防止密码等敏感信息泄露可以使用 ansible-vault 对变量文件进行加密cdhostansible-vault encrypt vault加密后文件内容变为密文只有输入正确的 Vault 密码才能查看或使用。执行加密的 Playbook执行时需要提供 Vault 密码ansible-playbook user.yml --ask-vault-pass系统将提示输入密码验证通过后 Playbook 正常运行。#文件加密ansible-vault encrypt userlist.yml查看与解密查看加密文件内容需密码sudoansible-vault view userlist.yml输入密码即可查看文件内容执行方法ansible-playbook user.yml --ask-vault-pass解密文件ansible-vault decrypt userlist.yml组织变量主机变量与组变量目录结构为了更规范地管理不同主机或组的差异化变量推荐使用 host_vars 和 group_vars 目录ansible_project/ ├── group_vars/ │ └── webservers/ │ └── vars# 组变量文件├── host_vars/ │ └── node1/ │ └── vault# 主机变量文件可加密├── user.yml └── userlist.ymlmkdirgroup_varscdgroup_varsmkdirwebserverscdwebservers组变量示例在 group_vars/webservers/vars 中定义该组所有主机共用的变量vimvars --- http_port:8080ansible-playbook apache.yml使用时Playbook 可直接引用 {{ http_port }}。实战使用 Playbook 部署 Zabbix 监控系统环境说明目标主机zabbix-server组或主机操作系统RHEL 9 / Rocky Linux 9如需 RHEL 7 可调整仓库 URL数据库MySQL使用 MariaDB安装 Ansible MySQL CollectionPlaybook 中使用了 mysql_db 和 mysql_user 模块需要先安装对应 Collectionansible-galaxy collectioninstallansible.mysql完整 Playbookzabbix.yml----hosts:zabbix-servertasks:# 1. 添加 Zabbix 官方仓库Rocky 9 版本-name:add zabbix repoansible.builtin.yum:name:https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-latest-6.0.el9.noarch.rpmstate:present# 2. 安装 Zabbix 服务端、Web、SQL脚本、SELinux策略及Agent-name:install zabbix-serveransible.builtin.yum:name:-zabbix-server-mysql-zabbix-web-mysql-zabbix-sql-scripts-zabbix-selinux-policy-zabbix-agentstate:present# 3. 安装 MySQL此处使用 MariaDB-name:install mysql-serveransible.builtin.yum:name:-mariadb-server-python3-PyMySQL# Python 连接 MySQL 的驱动state:present# 4. 启动并启用 MariaDB 服务-name:enable service mysqlansible.builtin.service:name:mariadbstate:startedenabled:yes# 5. 创建 Zabbix 数据库指定字符集-name:init zabbix databasemysql_db:name:zabbixstate:presentencoding:utf8mb4collation:utf8mb4_binvars:ansible_python_interpreter:/usr/bin/python3# 6. 创建 Zabbix 数据库用户并授权-name:create zabbix usermysql_user:name:zabbixstate:presenthost:localhostpassword:zabbixpriv:zabbix.*:ALLvars:ansible_python_interpreter:/usr/bin/python3# 7. 临时开启 log_bin_trust_function_creators导入数据需要-name:set log_bin_trust_function_creators to 1mysql_variables:variable:log_bin_trust_function_creatorsvalue:1vars:ansible_python_interpreter:/usr/bin/python3# 8. 导入 Zabbix 初始数据库结构使用 zcat 解压并导入-name:import zabbix sql scriptsansible.builtin.shell:|zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-setutf8mb4 -uzabbix -pzabbix zabbix touch /etc/zabbix/.init_db_sql.lockargs:creates:/etc/zabbix/.init_db_sql.lockvars:ansible_python_interpreter:/usr/bin/python3# 9. 导入完成后关闭 log_bin_trust_function_creators-name:set log_bin_trust_function_creators to 0mysql_variables:variable:log_bin_trust_function_creatorsvalue:0vars:ansible_python_interpreter:/usr/bin/python3ansible-playbook zabbix.yml注意事项Python 解释器路径使用 mysql_* 模块时需要明确指定 ansible_python_interpreter 为 /usr/bin/python3否则可能报错。幂等性通过 creates 参数判断锁文件是否存在避免重复导入 SQL 脚本。密码安全生产环境应将数据库密码加密存储Vault并避免在 Playbook 中明文书写。操作系统版本请根据目标系统的发行版选择合适的 Zabbix 仓库 URLRHEL 7/8/9。
RELATED

相关推荐

基于SSM的商铺租赁管理系统(毕业设计项目源码+文档)

基于SSM的商铺租赁管理系统(毕业设计项目源码+文档)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

📅 2026/10/2 17:58:45
Vibe-FDTR:面向代理的FDTR热物性数据分析框架,实现可复现性

Vibe-FDTR:面向代理的FDTR热物性数据分析框架,实现可复现性

1. 项目概述:一个面向代理的、可复现的FDTR数据分析框架如果你在热物性表征领域,特别是用频域热反射法(FDTR)测过薄膜材料的热导率,那你一定对数据处理这个环节又爱又恨。爱的是,FDTR作为一种非接触、高精度…

📅 2026/9/19 23:08:01
2026年Java大厂面试备战指南与核心技术解析

2026年Java大厂面试备战指南与核心技术解析

1. 2026年Java大厂面试备战全景指南作为经历过三次大厂面试轮回的老兵,我清楚地记得2023年那次蚂蚁金服面试中,面试官突然要求在白板上手写红黑树插入逻辑时的窒息感。如今站在2025年的技术风口回望,Java技术栈的面试维度已经发生了显著进化。…

📅 2026/9/19 23:29:03
MORE NEWS

更多资讯

📰

Codex:从代码补全到软件工程智能体的范式跃迁

1. 项目概述:Codex不是“另一个代码补全工具”,而是一次软件工程范式的迁移Codex这个词,这两年在开发者社区里被反复提起,但很多人其实没真正搞懂它到底在解决什么问题。我最早接触Codex是在2022年参与一个金融风控系统重构项目时…

📰

销售易CRM系统实战指南:配置、迁移与性能优化

1. 销售易CRM系统概述与核心价值销售易CRM作为国内领先的客户关系管理平台,已经服务超过5000家企业客户。这套系统最显著的特点是采用了社交化、移动化的设计理念,将传统CRM功能与社交网络特性深度融合。我在为三家不同规模企业部署销售易CRM的过程中发现…

📰

社交媒体主页工具开发:技术架构与盈利模式解析

1. 社交媒体主页工具的市场需求分析在当今数字化营销环境中,社交媒体主页已成为个人品牌和企业营销的核心阵地。数据显示,超过87%的消费者会通过社交媒体了解品牌信息,而精心设计的主页可以将转化率提升300%以上。这就是为什么"社交媒体…

📰

C语言职工管理系统:链表与文件读写打通增删改查实战

简介:C语言职工管理系统是一份基于Visual Studio 2022的完整工程项目,面向C语言初学者、K12阶段学生以及需要完成课程设计的高校生。系统围绕职工信息管理展开,实现了新增、删除、查询、修改与排序等核心功能,职工对象包含姓名、性…

📰

工业AI操作系统如何落地?西门子新技术的实战拆解

过去的十多年,我一直混迹在工业自动化和IT交叉的圈子里,从最早的PLC梯形图、WinCC组态,到后来接触MES、IIoT平台,再到这两年明显感觉AI开始往车间里扎。说实话,看到西门子在北京发布新技术,并反复强调“工业…

📰

Token市场海外对标:从API报错到大模型定价的生态密码

Token这个词,这几年已经从程序员的技术术语,逐渐变成了大模型时代人人都得懂一点的“硬通货”。爱分析发布的这份《2026年Token市场海外对标研究报告》,恰好踩在了AI产业从“模型竞赛”转向“商业化落地”的关键节点上。报告本身不算厚&#…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬