返回介绍

最佳实践 96:Ansible 自动化运维实例:Ansible 自动安装配置 zabbix 客户端

发布于 2025-04-20 17:44:53 字数 1891 浏览 0 评论 0 收藏

在上面的章节中,介绍了很多 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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。