使用自動化部署工具Ansible批量部署zabbix_agent.linux
1. 安裝Ansibleshell
yum –y install ansiblessh
內網狀況下,如今ansible及其依賴的rpm包,添加到yum源進行安裝。工具
2. 主機配置文件spa
在/etc/ansible中添加主機,主機配置文件爲hosts,也能夠在ansible.cfg中修改配置rest
inventory={主機配置文件路徑}code
具體hosts格式server
[zabbix-agent] #分組名稱,最好是一個文件一個分組。blog
IP ansible_ssh_user=’{帳戶名}’ ansible_ssh_pass=’{密碼}’ hostname={主機名字,能夠自定義}ip
3. 編寫安裝腳本
腳本文件結構以下:
.
├── ansible.cfg
├── hosts
└── roles
├── install_zabbix_agent
│ ├── file
│ │ ├── zabbix-agent-4.2.4-1.el7.x86_64.rpm
│ │ └── zabbix_agentd.conf
│ ├── handler
│ │ └── main.yml
│ └── tasks
│ ├── install.yml
│ ├── main.yml
│ └── setport.yml
└── install_zabbix_agent.yml
具體代碼:
install_zabbix_agent.yml
- hosts: zabbix-agent
remote_user: root
sudo: yes
sudo_user: root
gather_facts: true
roles:
- install_zabbix_agent
file : zabbix-agent-4.2.4-1.el7.x86_64.rpm zabbix-agent安裝包
zabbix_agentd.conf 統一修改好的zabbix-agent配置文件
handler main.yml
- name: restart zabbix-agent
service: name=zabbix_agentd state=restarted
tasks main.yml
- import_tasks: install.yml
- import_tasks: setport.yml
tasks install.yml
- block:
- name: "copy zabbix_agent to clients"
cpoy:
src=zabbix-agent-4.2.4-1.el7.x86_64.rpm
dest=/tmp
- name: "yum install zabbix_agent"
yum:
name: /tmp/zabbix-agent-4.2.4-1.el7.x86_64.rpm
state: present
- name: "copy zabbix_agentd.conf"
copy:
src=zabbix_agentd.conf
dest=/etc/zabbix/zabbix_agentd.conf
- name: disabled selinux
shell: /usr/sbin/setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
- name: "start zabbix, enable zabbix"
service:
name=zabbix-agent
state=started
enabled=yes
notify:
- restart zabbix-agent
tasks setport.yml
- block:
- name: mkdir log file
shell: mkdir -p /var/log/zabbix
- name: chmod for log
shell: chmod -R 755 /var/log/zabbix
- name: chown for log
shell: chown -R zabbix. /var/log/zabbix
- name: chmod for zabbix
shell: chmod -R 755 /etc/zabbix
- name: chown for zabbix
shell: chown -R zabbix. /etc/zabbix
- name: change log filepath
shell: sed -i 's/LogFile=\/var\/log\/zabbix\/zabbix_agent.log/LogFile=\/var\/log\/zabbix\/{{hostname}}.log/g' /etc/zabbix/zabbix_agentd.conf
- name: change server ip
shell: sed -i 's/Server=127.0.0.1/Server=10.10.40.70/g' /etc/zabbix/zabbix_agentd.conf
- name: change server active ip
shell: sed -i 's/ServerActive=127.0.0.1/ServerActive=10.10.40.70/g' /etc/zabbix/zabbix_agentd.conf
- name: change hostname
shell: sed -i 's/Hostname=Zabbix Server/Hostname={{hostname}}/g' /etc/zabbix/zabbix_agentd.conf
notify:
- restart zabbix-agent