ansible部署zabbix+mariadb(不看后悔系列)

ansible部署zabbix+mariadb

我只作了简单的部署,没有涉及到任何复杂操做。
实验环境
两台虚拟机,一台做为ansible,一台部署zabbix+mariadb
ansible:hostname=centos4 ip=192.168.100.135
Zabbix+mariadb:hostname=Zabbix ip=192.168.100.137php

在ansible配置源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
下载zabbix源:copy到远程
rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
关闭防火墙:使用service
ansible all -m service -a ‘name=firewalld state=stopped’
1, 关闭selinux:使用shell模块
ansible all -m shell -a ‘setselinux 0’mysql

2, 首先整理出来一个框架,什么文件该放在什么位置,由于我使用了不少种办法,因此文件有点多,你只须要用什么放什么就ok。
在这里插入图片描述linux

3, 我是用的xshell传文件
在这里插入图片描述
4,这里先说如何配置mariadb,若是不先配置数据库,zabbix就起不来。
手动写一个文件放在/roles/mariadb/files/

在这里插入图片描述web

5,而后写数据库的任务
-name:ansible下的源到被控主机。
-name:开始安装数据库。
-name:把openstack.cnf文件传到被控主机
-name:启动数据库
-name:把在数据库建立zabbix用户并受权的脚本传过去。
-name:执行脚本。
在这里插入图片描述在这里插入图片描述sql

在这里插入图片描述
ps:脚本长这个样子
#!/bin/bash #建立数据库 a=mysql -e "show databases;" | grep "zabbix" if [[ $a != “zabbix” ]];then mysql -e “create database zabbix character set utf8 collate utf8_bin;” fi #建立用户 b=mysql -e "select user,host from mysql.user;" | grep -o "zabbix" if [[ $b != “zabbix” ]];then mysql -e “grant all on zabbix.* to zabbix@’%’ identified by ‘123456’;” fi #倒数数据库 mysql -e “show tables from zabbix;” &> /dev/null if ! [[ $? -eq 0 ]];then zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 -h192.168.100.137 zabbix fi
在这里插入图片描述shell

6,开始配置zabbix
在这里插入图片描述
这里的bai.sh是本身写的,由于批量安装package失败因此选择了脚本
#!/bin/bash
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
在这里插入图片描述数据库

handlers:
在这里插入图片描述
ps:files里zabbix_server.conf下的密码要改对,时区也要改。
执行剧本:
这个文件写在跟roles平级的地方centos

在这里插入图片描述

7,测试:
在被控端检查相关服务状态
在执行剧本:ansible-playbook zabbix.yml
在这里插入图片描述
在这里插入图片描述bash

这里提醒你先决条件有问题,由于我是先修改的配置文件在copy到被控端,因此没有启动触发器。
在这里插入图片描述框架

你能够去从新配置一下,也能够:
ansible zabbix -m service -a ‘name=zabbix-server state=restarted’
在这里插入图片描述

若是还不行,请修改:
/etc/php.ini,而后在重启httpd服务
ansible zabbix -m service -a ‘name=httpd state=restarted’在这里插入图片描述
再去查看就ok啦
在这里插入图片描述