一、 系统环境
软件类型 | 软件版本 | IP | 备注 |
---|---|---|---|
linux | oracle 8.4 | 192.168.1.55 | 1台作为ansible管理机 |
zabbix-agent2 | 6.0.3 | ||
ansible | 2.9 | ||
linux服务器3台 | centos 7.4 | 192.168.1.61 192.168.1.62 192.168.1.63 | zabbix客户机 |
二、安装前准备
-
ansible服务器已经准备就绪
-
zabbix客户机系统安装好
-
提前下载zabbix-agent2安装包(zabbix-agent2-6.0.3-1.el7.x86_64.rpm)
三、部署安装
1、ssh密钥分发
- 在管理端主机上生成密码
root@oral8 ansible_opt]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:dUgIGKvcPFKYNiGARlu04H59mkxDcC6N9fV8CjCUgqY root@oral8
The key's randomart image is:
+---[RSA 3072]----+
|*oo+o=o=.o. |
|oo+*Xo..=.o. |
|.oB+o+.. .oo.. |
|.E *+ ...o |
| .+.++ .S . |
| ..o.= |
| + |
+----[SHA256]-----+
- 将密钥分发至每台客户机
将控制端的密码分布至每个客户机,这样是因为执行ansible命令时,实际是通过ssh登录到每个客户机进行操作,为避免登录每台都需要输入密码。
采用脚本批量将密码分发到所有主机,脚本如下:
for i in {1..3}
do
sshpass -p123456 /usr/bin/ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.1.6$i
done
-o StrictHostKeyChecking=no 参数禁用ssh提示询问。
-p后为所有主机用户密码
3、ansible playbook及脚本实现
创建ansible_zabbix目录,用于存放hosts、ansible.cfg、以及安装包、脚本等
[root@oral8 ansible_zabbix]# tree .
.
├── ansible.cfg
├── hosts
├── install_zabbix_agent.yaml
├── zabbix-agent2-6.0.3-1.el7.x86_64.rpm
└── zabbix-agent2-6-install.sh
- 配置ansible的hosts文件及ansible.cfg文件
# hosts配置内容
[agent-host]
192.168.1.61
192.168.1.62
192.168.1.63
# ansible.cfg配置内容
[defaults]
inventory = ./hosts # 指定hosts文件位置
- 准备zabbix-agent安装的playbook文件
playbook的脚本如下,命名为install_zabbix_agent.yaml
---
- hosts: all
tasks:
- name: copy zabbix-agent2 packages to hosts
copy:
src: zabbix-agent2-6.0.3-1.el7.x86_64.rpm
dest: /opt
- name: install zabbix-agent2
yum:
name: /opt/zabbix-agent2-6.0.3-1.el7.x86_64.rpm
state: present
- name: config agent
script: zabbix-agent2-6-install.sh
- name: start zabbix-agent2 services
systemd:
name: zabbix-agent2.service
state: started
enabled: yes
- 准备配置agent中配置文件的脚本
通过脚本批量配置zabbix_agent2.conf中的server、ServerActive以及hostname
修改agent脚本的内容如下:
#!/bin/bash
sed -i '/^Server=/s/127.0.0.1/192.168.1.55/g' /etc/zabbix/zabbix_agent2.conf
sed -i '/^ServerActive/s/127.0.0.1/192.168.1.55/g' /etc/zabbix/zabbix_agent2.conf
sed -i "/^Hostname=/s/Zabbix server/`hostname`/g" /etc/zabbix/zabbix_agent2.conf
完成以上所有内容后,直接运行命令ansible-play install_zabbix_agent.yaml,坐等安装完毕。
在zabbix的web界面上进行主机添加等配置,本文省略。。