1. 背景介绍:
1.1为了能更好的理解Linux相关常用组件,并巩固记忆,特设定以下实验,欢迎大家给做指点。非常欢迎!!!!
1.2实验主题:nginx 反代负载均衡wordpress,使用keepalived负载nginx, 动静分离,并使用zabbix监控各个项目
1.3(后面博客会有更多项目,增加使用corosync+pacemaker高可用,使用elk处理收集日志,使用分布式文件系统来进行存储wordpress,最后采用ansible来自动化部署。)
2. 基础环境准备
2.1 硬件环境准备(平台全采用Centos7)
192.168.126.31 cent7-1 nginx+keepalived(主主模型,最前采用dns轮询)
192.168.126.32 cent7-2 nginx+keepalived(主主模型)
192.168.126.33 cent7-3 httpd 静态资源
192.168.126.34 cent7-4 httpd 静态资源
192.168.126.41 cent7-5 php-fpm 动态资源+memcached缓存(这里不做缓存集群)
192.168.126.42 cent7-6 php-fpm 动态资源+zabbix
192.168.126.43 cent7-7 mariadb(mysql)+共享存储(nfs)
41-43性能较好
2.2 配置思路
31 32做nginx负载,keepalived主主模型两个vip 192.168.126.28,29 ,前端采用dns负载轮询,或者每次可以改本地hosts配置文件的方式实现。(keepalived主主模型可能存在两个vip在一个节点上的情况);nginx 使用proxy模块反代向后端两组主机,动态和静态,他们都用一个共享存储nfs,memcached做静态资源的缓存,也可以考虑做动态的;
3. 开始配置:
3.1首先准备系统,我安装的最小化的系统(CentOS-7-x86_64-Minimal-1708.iso),everything那个版本最好别装,太卡。安装过程掠过,有的朋友有时间可以用cobbler和kickstart来装,更自动化但实验环境可能比较慢。
1. yum仓库可能需要准备 nginx 的yum仓库。 vim /etc/yum.repos.d/nginx.repo
3.2 使用一台ansible主机写playbook
a. yum install ansible -y
b. cd /etc/ansible/roles
c.mkdir ./{ntdpate,httpd,nginx,keepalived,zabbix,mysql,zabbix}/{default,files,handle
rs,meta,tasks,templates,vars} -pv 创建各个角色相关目录
d.cd /etc/ansible/ ;cp hosts{,.bak};vim hosts定义ansible hosts 文件,(一般情况下,修改配置文件前自己先备份一下)
e.hosts文件内容如下:hname用来做标识的变量,可以不定义
[nginx]
192.168.126.31 hname=cent7-1
192.168.126.32 hname=cent7-2
[httpd]
192.168.126.33 hname=cent7-3
192.168.126.34 hname=cent7-4
[phps]
192.168.126.41 hname=cent7-5
192.168.126.42 hname=cent7-6
[mysqls]
192.168.126.43 hname=cent7-7
f.ssh-keygen -t rsa -P '';for i in {1..7};do ssh-copy-id -i .ssh/id_rsa.pub root@cent7-$i;done;ansible all -m ping; 生成ssh密钥,并分发给所有节点。保证可以采用ansible控制,然后ping 一下是否成功。这里要注意,采用root执行没有问题,不能将root密码放到ansible中,太危险。如果采用别的用户,最好放到管理员组中,并在sudo中定义好了,不然会有很多错误。这里降低复杂度,不做了。
3.3 角色编写nginx:
1. cd /etc/ansible/roles/nginx/
2. vim task/