- 前言
- 读者对象
- 如何阅读本书
- 勘误和支持
- 致谢
- 第 1 篇 高性能网站构建
- 第 1 章 深入理解 DNS 原理与部署 BIND
- 第 2 章 全面解析 CDN 技术与实战
- 第 3 章 负载均衡和高可用技术
- 第 4 章 配置及调优 LVS
- 第 5 章 使用 HAProxy 实现 4 层和 7 层代理
- 第 6 章 实践 Nginx 的反向代理和负载均衡
- 第 7 章 部署商业负载均衡设备 NetScaler
- 第 8 章 配置高性能网站
- 第 9 章 优化 MySQL 数据库
- 第 2 篇 服务器安全和监控
- 第 10 章 构建企业级虚拟专用网络
- 第 11 章 实施 Linux 系统安全策略与入侵检测
- 第 12 章 实践 Zabbix 自定义模板技术
- 第 13 章 服务器硬件监控
- 第 3 篇 网络分析技术
- 第 14 章 使用 tcpdump 与 Wireshark 解决疑难问题
- 第 15 章 分析与解决运营商劫持问题
- 第 16 章 深度实践 iptables
- 第 4 篇 运维自动化和游戏运维
- 第 17 章 使用 Kickstart 完成批量系统安装
- 第 18 章 利用 Perl 编程实施高效运维
- 第 19 章 精通 Ansible 实现运维自动化
- 第 20 章 掌握端游运维的技术要点
- 第 21 章 精通手游运维的架构体系
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
最佳实践 96:Ansible 自动化运维实例:Ansible 自动安装配置 zabbix 客户端
在上面的章节中,介绍了很多 Ansible 原理性的东西,最终还是需要在实际应用中发挥作用的。通过一个具体的例子,向读者朋友介绍,如何拆分一个任务,并组织其中的关系。
Zabbix 是目前使用非常多的一款开源的监控工具,本书的第 12 章已经对它做过介绍了。Zabbix Server 和 Zabbix Proxy 的安装部署一般只在初始搭建的时候操作一次,搭建完成之后就很少再去动,所以如果用 Ansible 写成自动化部署任务意义并不是很大。而 Zabbix Agent 的安装却是经常要做的操作,比如新服务器上架,都需要接入 Zabbix 监控。所以对于这类需要经常使用的反复操作的任务,使用 Ansible 写成 Playbook 是非常有意义的。
下面先来分解一下,安装 Zabbix Agent 需要几步操作。
第一步,系统环境配置,添加 epel 的源。
第二步,安装 Zabbix Agent 程序。
第三步,更新 zabbix-agent 配置文件。
第四步,刷新配置,重启 zabbix-agent 服务。
总体的目录结构如下:
[root@localhost zabbix]# tree . ├── roles │ ├── common //定义通用的操作 │ │ ├── files │ │ │ ├── epel.repo │ │ │ └── RPM-GPG-KEY-EPEL-6 │ │ ├── handlers │ │ └── tasks │ │ └── main.yml //定义通用操作的任务文件 │ └── zabbix-Agent //定义 zabbix-agent 部署任务 │ ├── files //存放 zabbix 客户端需要的安装包 │ │ ├── zabbix-2.4.5-1.el6.x86_64.rpm │ │ ├── zabbix-agent-2.4.5-1.el6.x86_64.rpm │ │ └── zabbix-sender-2.4.5-1.el6.x86_64.rpm │ ├── handlers │ │ └── main.yml //定义 handlers 触发任务 │ ├── tasks │ │ └── main.yml //zabbix-agent 部署任务文件 │ └── templates //存放 zabbix 的配置文件模板 │ └── zabbix_agentd_conf.ja2 └── site.yml //roles playbook 的入口文件
使用 roles 组织 Playbook 之后,发现结构非常的清楚,在 site.yml 中,只需要引用 roles 就可以了,非常方便、清晰。
[root@localhost zabbix]# cat site.yml --- - name: Install zabbix agent 2.4.5 hosts: webserver //定义主机组,所有 webserver 组的主机将安装 zabbix 客户端 remote_user: root //定义执行任务的远程用户 vars: - zabbix_server: 172.16.100.61 //定义变量,zabbix 服务器地址 roles: //引入 roles - common - zabbix-Agent
由于篇幅有限,笔者就不再一一将每个文件的内容进行说明了,使用 roles 组织 Playbook,只要任务拆分做好之后,各文件中的内容都是非常清楚的。有兴趣的读者,可以通过以下地址获取。
git clone https://github.com/nameyjj/Ansible-zabbix-agent-roles.git
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论