ansible 部署zabbix-proyx 联网环境

1 篇文章 0 订阅
1 篇文章 0 订阅

基础环境介绍

date:2020-7-26
linux 版本:Centos 7 Linux 3.10.0-327.el7.x86_64 x86_64 GNU/Linux
ansible 版本: 2.9.10
mysql 版本: 5.5.65-Mariadb
zabbix-proyx 版本: 4.0
ansible01 : 192.168.66.145
test_client01:192.168.66.146

归档:ansible_zabbix-proxy_4.x_2020-7-26.tar.gz 提取码:liao

配置免秘钥登陆

[root@ansible01 ~]# ssh-keygen      # 一路回车
[root@ansible01 ~]# ssh-copy-id root@192.168.66.146

[root@ansible01 ~]# ssh 192.168.66.146
	Last login: Sun Jun 28 19:49:07 2020 from 192.168.66.145
[root@test_client01 ~]# logout 
	Connection to 192.168.66.146 closed.
[root@ansible01 ~]# 

配置ansible 的主机清单,并测试

[root@ansible01 ~]# vim /etc/ansible/hosts
[zabbixproxy]
192.168.66.146 mariadb_root_password=Root@123 mariadb_zabbix_password=Zabbix@123 zabbix_server_ip=192.168.66.145 zabbix_proxy_name=1

[root@ansible01 ~]# ansible -m command -a 'hostname' 'zabbixproxy'
	192.168.66.146 | CHANGED | rc=0 >>
	test_client01

创建所需的目录结构,并准备相应文件

	a. 创建目录关系
	[root@ansible01 ~]# mkdir -pv /etc/ansible/zabbixproxy/roles/{pre,mariadb,proxy}/{tasks,files,templates,vars,meta,default,handlers}
		
	b. 创建site.yml 入口yml 文件
	[root@ansible01 zabbixproxy]# touch /etc/ansible/zabbixproxy/roles/site.yml 
		
	c. 准备mariadb 配置文件 copy 至/etc/ansible/zabbixproxy/roles/mariadb/files/my.cnf
	……
	datadir=/data/mariadb
	……
	
	d. 准备zabbix-proxy 配置文件copy至 /etc/ansible/zabbixproxy/roles/proxy/templates/zabbix-proxy.conf.j2
	……
	Server={{zabbix_server_ip}}
	Hostname={{zabbix_proxy_name}}
	DBName=zabbix_proxy
	DBUser=zabbix
	DBPassword={{mariadb_zabbix_password}}
	……

配置pre模块

[root@ansible01 zabbixproxy]# vim roles/pre/tasks/main.yml

- name: stop selinux               # 关闭selinux
  shell: setenforce 0
  ignore_errors: yes

- name: close selinux startup        # 设置启动关闭selinux
  replace:
    path: /etc/selinux/config
    regexp: 'SELINUX=enforcing'
    replace: 'SELINUX=disabled'

- name: open mariadb and proxy port           # 防火墙打开服务所需端口
  shell: firewall-cmd --add-port=3306/tcp --add-port=10051/tcp --permanent

- name: flush firewalld                # 重载防火墙
  shell: firewall-cmd --reload

配置mariadb 模块

[root@ansible01 zabbixproxy]# vim roles/mariadb/tasks/main.yml 

- name: install mariadb-server           # 安装mariadb-server
  yum:
    name: mariadb-server
    state: latest
 
- name: mkdir data                              # 创建数据库的数据目录
  shell: mkdir -p /data/mariadb

- name: back config file
  shell: mv /etc/my.cnf /etc/my.cnf.bak
  ignore_errors: yes

- name: provide config file                  # 提供事先准备好的数据库配置文件
  copy: src=my.cnf dest=/etc/my.cnf

- name: change datadir owner         # 修改目录和配置文件的权限
  shell: chown -R mysql:mysql /data/mariadb /etc/my.cnf

- name: start and startup mariabd       # 启动并开机启动
  service:
    name: mariadb
    enabled: yes
    state: started

- name: set mariadb root password     # 设置数据库的root密码
  shell: mysqladmin -u root password {{ mariadb_root_password }}
  ignore_errors: yes

配置proyx 模块

[root@ansible01 zabbixproxy]# vim roles/proxy/tasks/main.yml

- name: install zabbix-release
  yum: 
    name: https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
    state: present

# 网络不好的时候会执行失败,所以建议多执行几遍

- name: yum install zabbix-proxy-mysql
  yum:
    name: zabbix-proxy-mysql
    state: present
  ignore_errors: yes

- name: yum install zabbix-proxy-mysql
  yum:
    name: zabbix-proxy-mysql
    state: present
  ignore_errors: yes

- name: yum install zabbix-proxy-mysql
  yum:
    name: zabbix-proxy-mysql
    state: present
  ignore_errors: yes

- name: yum install zabbix-proxy-mysql
  yum:
    name: zabbix-proxy-mysql
    state: present
  ignore_errors: yes
  
- name: yum install zabbix-proxy-mysql
  yum:
    name: zabbix-proxy-mysql
    state: present
  ignore_errors: yes
  
- name: mariadb create zabbix_proxy db
  shell: mysql -uroot -p{{ mariadb_root_password }} -e 'create database zabbix_proxy character set utf8 collate utf8_bin;'
  ignore_errors: yes

- name: mariadb create zabbix user
  shell: mysql -uroot -p{{ mariadb_root_password }} -e 'grant all privileges on zabbix_proxy.* to zabbix@localhost identified by  "{{ mariadb_zabbix_password }}" ;'
  ignore_errors: yes

- name: flush mariadb privileges
  shell: mysql -uroot -p{{ mariadb_root_password }} -e 'flush privileges;'
  ignore_errors: yes

- name: import zabbix-proxy sql
  shell: zcat /usr/share/doc/zabbix-proxy-mysql-*/schema.sql.gz | mysql -uzabbix -p{{mariadb_zabbix_password}} zabbix_proxy;
  ignore_errors: yes

- name: bake config file
  shell: mv /etc/zabbix/zabbix_proxy.conf /etc/zabbix/zabbix_proxy.conf.bak
  ignore_errors: yes

- name: provide config file
  template: src=zabbix_proxy.conf.j2 dest=/etc/zabbix/zabbix_proxy.conf group=zabbix
  ignore_errors: yes

- name: start and startup zabbix-proyx
  service:
    name: zabbix-proxy
    enabled: yes
    state: started

配置site.yml

- name: zabbix-proxy build
  hosts: zabbixproxy
  roles:
    - pre
    - mariadb
    - proxy

完整的目录结构

[root@ansible01 zabbixproxy]# tree /etc/ansible/zabbixproxy/
/etc/ansible/zabbixproxy/
└── roles
├── mariadb
│ ├── default
│ ├── files
│ │ └── my.cnf
│ ├── handlers
│ ├── main.yml
│ ├── meta
│ ├── tasks
│ │ └── main.yml
│ ├── templates
│ └── vars
├── pre
│ ├── default
│ ├── files
│ ├── handlers
│ ├── meta
│ ├── tasks
│ │ └── main.yml
│ ├── templates
│ └── vars
├── proxy
│ ├── default
│ ├── files
│ ├── handlers
│ ├── meta
│ ├── tasks
│ │ └── main.yml
│ ├── templates
│ │ └── zabbix_proxy.conf.j2
│ └── vars
└── site.yml

测试部署

[root@ansible01 roles]# ansible-playbook /etc/ansible/zabbixproxy/roles/site.yml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值