Ansible 是一个强大的开源自动化工具,用于配置管理、应用程序部署和任务自动化,Playbook 是 Ansible 中用于定义一系列任务的脚本文件,通过使用 Playbook,我们可以自动化许多运维任务,比如安装 Zabbix 客户端。
下面是一个示例 Playbook,用于在一组主机上安装 Zabbix 客户端:
准备工作
确保你的控制节点(运行 Ansible 的机器)已经安装了 Ansible,并且可以 SSH 到目标机器。
创建 Inventory 文件
创建一个inventory
文件,列出所有需要安装 Zabbix 客户端的目标主机。
[zabbix_clients] server1.example.com ansible_user=your_user ansible_ssh_private_key_file=/path/to/your/private/key server2.example.com ansible_user=your_user ansible_ssh_private_key_file=/path/to/your/private/key
创建 Playbook 文件
创建一个名为install_zabbix_agent.yml
的 Playbook 文件:
name: Install Zabbix Agent hosts: zabbix_clients become: yes tasks: name: Ensure EPEL repository is installed yum: name: epelrelease state: present name: Install Zabbix agent yum: name: zabbixagent state: present name: Add Zabbix server configuration template: src: templates/zabbix_agentd.conf.j2 dest: /etc/zabbix/zabbix_agentd.conf name: Start and enable Zabbix agent service systemd: name: zabbixagent state: started enabled: yes
创建模板文件
创建一个目录templates
,并在其中创建一个名为zabbix_agentd.conf.j2
的模板文件:
Zabbix agent configuration file generated by Ansible Server=<zabbix_server> ServerActive=<zabbix_server> Hostname={{ inventory_hostname }} ...
运行 Playbook
运行以下命令来执行 Playbook:
ansibleplaybook i inventory install_zabbix_agent.yml extravars "zabbix_server=<your_zabbix_server_ip>"
将<your_zabbix_server_ip>
替换为你的 Zabbix 服务器的实际 IP 地址或域名。
这个 Playbook 会完成以下步骤:
1、确保 EPEL 仓库已安装。
2、安装 Zabbix 代理。
3、使用模板文件添加 Zabbix 服务器的配置。
4、启动并启用 Zabbix agent 服务。
你可以根据需要进一步自定义和扩展这个 Playbook。