Linux下利用自动化运维工具Ansible自动化部署lamp架构+zabbix

续我的上篇博文:https://mp.csdn.net/postedit/88881892即自动化部署zabbix已经配置好

 

 

lamp架构+zabbix的自动化部署

 

1、mariadb目录——沿用上篇博文

 

2、配置所需的yum源(下载zabbix-server的软件报好)——沿用上篇博文

 

3、zabbix-server目录(相比于上篇博文,增加了一些内容)

[root@server1 tasks]# cd /etc/ansible/roles/
[root@server1 roles]# ls
mariadb
[root@server1 roles]# mkdir zabbix-server/{defaults,files,handlers,meta,tasks,templates,vars} -p   #zabbix-server目录的名字随意给,因为搭建的是zabbix-server服务,所以这里创建的目录的名字为zabbix-server



[root@server1 roles]# cd zabbix-server/files
[root@server1 files]# vim zabbix.repo   #zabbix.repo文件的名字随意给,但是必须以.repo结尾
[zabbix]
name=zabbix4.0
baseurl=http://172.25.83.83/4.0
gpgcheck=0
enabled=1



[root@server1 files]# cd ../tasks/
[root@server1 tasks]# vim main.yml   #main.yml文件的名字是固定的,不要随意改
- name: copy zabbix.repo
  copy: src=zabbix.repo dest=/etc/yum.repos.d/zabbix.repo

- name: install zabbix-server zabbix-agent zabbix-web-mysql.noarch zabbix-web.noarch
  yum: name=zabbix-server,zabbix-agent,zabbix-web-mysql.noarch,zabbix-web.noarch  state=present   #相比于上篇博文修改的内容,多下载了zabbix-web-mysql.noarch,zabbix-web.noarch,提供web界面
  notify: "init zabbix db"

- name: config zabbix server
  copy: src=zabbix_server.conf dest=/etc/zabbix/zabbix_server.conf
  notify: restart zabbix server

- name: start zabbix-server zabbix-agent
  service: name={{ item }} state=started
  with_items:
    - zabbix-server
    - zabbix-agent


[root@server1 tasks]# cd ../handlers/
[root@server1 handlers]# vim main.yml
- name: create database
  mysql_db: name=zabbix state=present
  listen: "init zabbix db"

- name: create zabbix user
  mysql_user: name=zabbix password=zabbix priv=zabbix.*:ALL state=present
  listen: "init zabbix db"

- name: import create.sql.gz
  mysql_db: name=zabbix state=import target=/usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz
  listen: "init zabbix db"

- name: restart zabbix server
  service: name=zabbix-server state=restarted

 

[root@server1 files]# scp zabbix.repo server2:/etc/yum.repos.d/zabbix.repo   #将yum源发送给server2,以便在server2端安装zabbix-server

[root@server2 ~]# yum install zabbix-server  -y   #在server2端先安装zabbix-server以生成所需的zabbix_server.conf文件
[root@server2 ~]# scp /etc/zabbix/zabbix_server.conf server1:/etc/ansible/roles/zabbix-server/files   #将zabbix_server.conf文件发送到server1端的/etc/ansible/roles/zabbix-server/files目录下


[root@server1 ~]# cd /etc/ansible/roles/zabbix-server/files/
[root@server1 files]# ls
zabbix.repo  zabbix_server.conf
[root@server1 files]# vim zabbix_server.conf   #修改zabbix_server.conf文件中的数据库的密码
124 DBPassword=zabbix   #将密码修改为之前在文件中写的,创建的zabbix用户对应的密码

 

4、apache目录

[root@server1 ~]# cd /etc/ansible/roles/
[root@server1 roles]# ls
mariadb  zabbix-server
[root@server1 roles]# mkdir apache/{defaults,files,handlers,meta,tasks,templates,vars} -p



[root@server1 files]# cd ../tasks/
[root@server1 tasks]# vim main.yml
- name: install httpd
  yum: name=httpd state=present

- name: copy httpd.conf
  template: src=httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf
  notify: restart httpd

- name: copy zabbix.conf
  copy: src=zabbix.conf dest=/etc/httpd/conf.d/zabbix.conf
  notify: restart httpd

- name: start httpd
  service: name=httpd state=started



[root@server1 tasks]# cd ../templates/
[root@server1 templates]# cp /etc/ansible/playbooks/httpd/httpd.conf7.j2 httpd.conf.j2   #将之前编写playbook文件时用到的httpd.conf的模板拷贝到当前目录下
[root@server1 templates]# ls
httpd.conf.j2
[root@server1 templates]# vim httpd.conf.j2   #在httpd.conf.j2模板中定义变量
 42 Listen {{ http_port }}



[root@server1 templates]# cd ../vars/
[root@server1 vars]# vim main.yml   #在该文件中定义http_port变量的值
http_port: 8080



[root@server1 vars]# cd ../handlers/
[root@server1 handlers]# vim main.yml
- name: restart httpd
  service: name=httpd state=restarted

 

[root@server2 ~]# scp /etc/httpd/conf.d/zabbix.conf server1:/etc/ansible/roles/apache/files   #将zabbix.conf文件发送到server1端的/etc/ansible/roles/apache/files目录下
[root@server1 ~]# cd /etc/ansible/roles/apache/files/
[root@server1 files]# ls
zabbix.conf
[root@server1 files]# vim zabbix.conf    #修改时区
 20         php_value date.timezone Asia/Shanghai

 

5、php目录

[root@server1 handlers]# cd /etc/ansible/roles/
[root@server1 roles]# ls
apache  mariadb  zabbix-server
[root@server1 roles]# mkdir php/{defaults,files,handlers,meta,tasks,templates,vars} -p



[root@server1 roles]# cd php/tasks/
[root@server1 tasks]# vim main.yml
- name: install php
  yum: name=php,php-mysql state=present

 

6、.yml文件的编写

[root@server1 ansible]# ls
ansible.cfg  hosts  index.html  playbooks  roles  zabbix-server.retry  zabbix-server.yml
[root@server1 ansible]# vim lamp.yml
---
#lamp+zabbix-server部署
- hosts: server2
  roles:
      - mariadb  
      - zabbix-server      
      - apache
      - php

 

7、测试

[root@server1 ansible]# ansible-playbook lamp.yml --syntax-check 
[root@server1 ansible]# ansible-playbook lamp.yml -C
[root@server1 ansible]# ansible-playbook lamp.yml
  • 在server2端查看zabbix-server(10051),zabbix-agent(10050),mariadb(3306),httpd(8080),的监听端口是否存在,及php和php-fpm是否已经安装

  • 在浏览器访问172.25.83.2:8080/zabbix


在配置过程中出现的问题,在执行推送时报下面的错误。产生该错误的原因是,zabbix数据库已经导进去了,重复导入,会报下面的错。

解决办法:在minion端(server2)删除mariadb-server软件——yum  remove  mariadb-server  -y;并删除/var/lib/mysql中的数据——rm  -rf  /var/lib/mysql。其中如果不删除/var/lib/mysql中的内容,当重新下载mariadb-server之后,会发现数据库中仍然有zabbix数据库,该zabbix数据库来源于/var/lib/mysql中的数据。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值