利用ansible批量部署zabbix-agent

一、 系统环境

软件类型 软件版本 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界面上进行主机添加等配置,本文省略。。

你可能感兴趣的:(ansilbe,linux,centos,8.4,linux,服务器,运维)