安装 Ansible
如果您还没有在控制节点上安装 Ansible,请先根据您的操作系统版本安装 Ansible。可在 Ansible 官方网站上找到相关文档。例如,在 Ubuntu 上安装 Ansible,可以使用以下命令:
$ sudo apt update
$ sudo apt install ansible
创建 Ansible playbook
在创建 playbook 前,需要先在 ansible hosts 文件中定义待配置主机信息,例如, 在 /etc/ansible/hosts 文件中添加以下内容:
[zabbix_servers]
192.168.1.1
192.168.1.2
192.168.1.3
[zabbix_servers:vars]
ansible_user=ubuntu
ansible_ssh_private_key_file=~/.ssh/id_rsa
在此示例中,定义了一个名为 [zabbix_servers] 的主机组,其中包含 3 台主机。此外,可以在该组中定义一个名为 [zabbix_servers:vars] 的变量组,其中存储了部署 Zabbix 所需使用的 SSH 用户名和私钥文件路径。
接下来,可以创建一个名为 zabbix.yml 的 playbook 文件,其中包含在远程主机上所需安装和配置 Zabbix 所需的所有任务。确保逐步定义所需的任务,这可以通过 Ansible 模块和角色来实现。
以下是 playbook 的示例:
-
name: Deploy Zabbix
hosts: zabbix_servers
vars:
zabbix_server_host: 192.168.1.4
zabbix_server_dbname: zabbix
zabbix_server_dbuser: zabbix
zabbix_server_dbpassword: password
become: yesroles:
- role: geerlingguy.postgresql
- role: geerlingguy.apache
- role: geerlingguy.php
- role: ansibles.zabbix
在此 playbook 中,定义了在名为 zabbix_servers 的主机组中运行的角色列表,以及监控服务器的 IP 地址,数据库名称,用户名和密码。其中的角色使用了第三方 Ansible 角色,可以通过在 playbook 文件中添加以下部分来引用该角色:
roles: - geerlingguy.postgresql
- geerlingguy.apache
- geerlingguy.php
- ansibles.zabbix
在 playbook 中,可以通过在最后一个角色 ansibles.zabbix 中执行以下 shell 命令来启动 Zabbix: - name: Start Zabbix Server
shell: /etc/init.d/zabbix-server start
运行 playbook
完成 playbook 的创建后,可以通过运行以下命令来执行 playbook:
$ ansible-playbook zabbix.yml
Ansible 将根据定义的 playbook 执行所有任务,以在所有远程主机上安装和配置 Zabbix。