文章目录
安装zabbix-agent2
[root@zabbix-server roles]# tree -L 2
.
├── ansible.cfg
├── group_vars #变量目录
│ └── all
├── hosts #主机清单
├── site.yml
└── zabbix-agent2 #角色名称
├── files #存放文件
├── handlers #触发任务
├── tasks #具体任务
└── templates #模板文件
1.主机清单文件(必须先和目标主机免密)
[root@zabbix-server roles]# cat hosts
[webservers]
node1
这里我做了用主机名的方式登录:看管理机用主机名登录文章
2.创建角色目录
mkdir -p zabbix-agent2{tasks,handlers,templates.files}
3.编写具体任务
#编写思路
1.安装
2.配置
3.启动
[root@zabbix-server roles]# cat zabbix-agent2/tasks/main.yaml
- name: Add repository
yum_repository:
name: zabbix
description: Zabbix YUM repo
baseurl: https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64
- name: Installed Zabbix-Agent2 Server
yum:
name: zabbix-agent2
state: present
- name: Configure Zabbix-Agent2 Server
template:
src: zabbix_agent2.conf.j2
dest: /etc/zabbix/zabbix_agent2.conf
notify: Systemd Restart Zabbix-agent2
- name: Configure zabbix conf
file:
src: '{{ item.src }}'
dest: '{{ item.dest }}'
mode: 0644
with_items:
- { src: './zabbix_agent2.d/mysql.conf', dest: '/etc/zabbix/zabbix_agent2.d/' }
- { src: './zabbix_agent2.d/nginx_status.conf', dest: '/etc/zabbix/zabbix_agent2.d/' }
- { src: './zabbix_agent2.d/user_num.conf', dest: '/etc/zabbix/zabbix_agent2.d/' }
notify: Systemd Restart Zabbix-agent2
- name: Copy zabbix-agent2 Files
copy:
src: '{{ item.src }}'
dest: '{{ item.dest }}'
mode: 0755
with_items:
- { src: './zabbix_agent2.d/scripts', dest: '/etc/zabbix/zabbix_agent2.d/' }
- name: System Zabbix-Agent2 Server
systemd:
name: zabbix-agent2
state: started
enabled: yes
4.编写触发任务(重启服务)
[root@zabbix-server roles]# cat zabbix-agent2/handlers/main.yml
#重启服务
- name: Systemd Restart Zabbix-agent2
systemd:
name: zabbix-agent2
state: restarted
5.templates放置模板文件(必须以.j2结尾)
templates中放带有变量的文件,会自己解析
[root@zabbix-server roles]# cat zabbix-agent2/templates/zabbix_agent2.conf.j2
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server={{ zabbix_server_ip }}
ServerActive={{ zabbix_server_ip }}
Hostname={{ ansible_hostname }}
HostMetadata=master
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
6.编写变量文件
#有变量的都可以写在这里面
[root@zabbix-server roles]# cat group_vars/all
##zabbix-server
zabbix_server_ip: 192.168.10.68
7.编写调用任务文件(名字任意起,但必须是yml)
[root@zabbix-server roles]# cat site.yml
- hosts: webservers
roles:
- zabbix-agent2
8.执行roles
[root@zabbix-server roles]# ansible-playbook site.yml -i hosts