云计算自动化运维——Ansible使用角色编写zabbix自动安装部署

前面我们已经学习过zabbix的安装部署步骤,并编写过playbook自动安装脚本,但是playbook将所有部署及服务配置写到了一个文件中,不便于查看于修改。今天,我们来学习zabbix全自动安装之角色编程。
附前篇:编写Playbook实现Zabbix自动安装部署
https://blog.youkuaiyun.com/CapejasmineY/article/details/103218902

实验

实验环境:

主机名 ip 服务
server1 172.25.1.1 ansible、web
server2 172.25.1.2 hosts主机、zabbix-server
server3 172.25.1.3 hosts主机、mariadb

思路:编写四个角色,分别用来安装配置后端数据库mariadb、前端web界面、zabbix-agent及zabbix-server,然后通过编写zabbix.yml文件,对于不同主机调用不同的角色。

步骤一:使用init命令初始化四个角色的基本结构

cd /home/devops/ansible/roles
ansible-galaxy init mariadb  #使用init命令初始化新角色mariadb的基本结构
ansible-galaxy init web
ansible-galaxy init zabbix-server
ansible-galaxy init zabbix-agent

在这里插入图片描述
步骤二:编写数据库mariadb角色
(1)编写tasks/main.yml文件,定义任务。
在这里插入图片描述

---
# tasks file for mariadb
- name: install mariadb   #安装数据库
  yum:
   name: mariadb-server,MySQL-python
   state: present

- name: config mariadb   #配置服务
  copy:
    src: my.cnf
    dest: /etc/my.cnf
  notify: restart mariadb

- name: start mariadb  #开启服务
  service:
    name: '{
   { item }}'  #调用变量
    state: started
    enabled: yes
  loop:     #循环
    - mariadb
    - firewalld
- name: create database zabbix  #创建数据库zabbix
  mysql_db:
    login_user: root  #登陆用户
    login_password: westos  #登陆密码
    name: zabbix   #数据库名称
    state: present   #状态:安装
  notify: import create.sql  #调用触发器,给数据库zabbix导入表

- name: create user   #创建用户
  mysql_user:
    login_user: root
    login_password: westos
    name: zabbix
    password: zabbix
    host: '%'   #允许所有主机远程登陆
    priv: 'zabbix.*:ALL'  #授权
    state: present

- name: copy create.sql #复制本地文件到目标主机
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值