1.PXE安装一台服务器 域名(example.cn)
主机名: 个人姓名全拼 (比如:个人姓名全拼.example.cn)
zhangjianxin.example.cn
IP地址:
MAC地址:
IP地址和mac地址见: 高可用0308.xlsx (每位同学的vip与mac地址唯一)
1) /etc/dhcp/dhcdp.conf # 将ip地址和mac地址进行绑定
2) /var/named/example.cn.zone # 正向解析
/var/named/200.15.10.in-addr.arpa # 反向解析 (记得改完各个配置 重启服务)
注意: 装机时 虚拟机 需要手动写入mac地址
2.关于kafka相关需求
1)keepalived+haproxy实现zookeeper端口号2181端口号的高可用
keepalived: ha01 (提供vip)
vip: Excel表格中分配的为准
haproxy: 给zookpeer的2181端口提供负责分发
node01,node02,node03三个节点:
kafka zookeeper:
2)创建一个消费者--topic 每个人姓名的拼音全拼 比如: zhangjianxin (姓名全拼)
3)模拟生产者和消费者
生产者发送的消息为: 每个人姓名的拼音全拼_pass
比如: zhangjianxin_pass
3.haproxy实现7层代理 根据不同的域名 将请求发送到不同的服务器
前端haproxy提供负责均衡:
node01台提供: app.example.cn的服务
node02台提供: bbs.example.cn的服务
node03台提供: *.example.cn # default
郭洋洋 10.15.200.93 00:0c:59:8f:2b:3c
首先在GW网管主机上修改为配置文件
Vim vim /etc/dhcp/dhcpd.conf(设置主机名)
修改完保存退出并重启服务
Systemctl restart dhcpd
vim /var/named/example.cn.zone(正向解析)
修改完保存退出
vim /var/named/200.15.10.in-addr.arpa(反向解析)
修改完保存退出并重启服务
Systemctl restart named
先试试解析下
Ok没有问题
开始装机
开始装机
查看下是否正确
Ok装机完成!!!
2
首先打开ha01主机下载keepalived服务
去网关将配置文件下载下来
修改配置文件
重启服务并查看vip
三台服务器节点node01,node02,node03开启http服务
在ha01主机上下载haproxy服务
从网关上下载配置文件
启动服务
查看vip
访问下管理页面
keepalived+haproxy实现zookeeper端口号2181端口号的高可用
首先查看下node01,02,03主机上面下载安装包kafka,zookeeper-3.4.14.tar.gz
前提: node01 node02 node03通过gw能够上网
01主机
02主机
03主机
node01 node02 node03 系统时间与gw同步
三台主机进行以下相同操作
下载java
创建两个目录并且将两个包解压
在node01上下载对应的配置文件:
在node02上下载对应的配置文件:
在node03上下载对应的配置文件:
在node01 node02 node03 分别重启zookeeper服务
Node3为管理主机
安装kafka: 在node01 node02 node03分别安装
手动创建一个目录 在所有节点 node01 node02 node03
mkdir -p /data/kafka_log_9092
启动服务
创建一个消费者 guoyangyang(node01主机)
模拟生产者和消费者 生产者发送的消息为: guoyangyang_pass
模拟生产者(node02主机)
模拟消费者(node03主机)
结果
keepalived+haproxy实现zookeeper端口号2181端口号的高可用
测试主机为node05
在node05主机上下载安装包
分别连接kafka的三个节点进行测试
这个时候查看node02主机为管理主机
模拟node02主机宕机
查下管理主机
可以看出管理主机变成node03了成功!!!
haproxy实现7层代理 根据不同的域名 将请求发送到不同的服务器
需要以下主机: ha01,node01,node02,node03,一台windows虚拟机(网关为vmnate3)
Ha01上面下载haproxy服务
去GW网关主机中下载配置文件
修改配置文件
在GW网关上修改下文件
保存退出重启服务并开启
访问hoproxy管理页面(账号:admin 密码:admin)
在windows虚拟机上面验证:
首先域名访问app.example.cn
域名访问bbs.example.cn
域名访问随便一个
完成!!!
第4题: 4.ansbile通过role部署一个http php网站 访问http出现如下内容
- role的名字: 个人姓名拼音全拼_role 比如: zhangjianxin_role
查看roles名
- 在node03节点 安装httpd php服务
2) 拷贝httpd.conf文件到指定的服务器
httpd.conf模板文件见: /etc/ansible/roles/http_php/files/httpd.conf
httpd端口号: 见 高可用0308_实验题.xlsx
3) 个人姓名拼音全拼.php 内容如下: 放于 /var/www/html/目录下面
src文件名: zhangjianxin.php
目的文件名: /var/www/html/zhangjianxin.php
src: zhangjianxin.php (每个同学: 个人姓名拼音全拼)
dest: /var/www/html/zhangjianxin.php
<?php
echo gethostname();
echo PHP_EOL;
echo "hello 个人
姓名拼音全拼_pass";
echo PHP_EOL;
?>
- httpd (服务为启动状态, 同时设置为开机启动)
5) 访问结果 类似如下:
http://10.15.200.103:3721/zhangjianxin.php
node03.example.cn hello zhangjianxin_pass # 个人
验证:访问http://10.15.200.103:8093/guoyangyang.php
完成实验!!!
评分标准:
1) role名字与个人名字不匹配 此实验记为0分
2) http端口号表格中的不匹配 此实验记为0分
3) src与dest文件文件名字不匹配 此实验记为0分
4) 在node03节点, 安装此实验题, 如果其它节点 此实验记为0分
5) 此实验结果显示的node节点名字 及 内容任意一个不匹配 此实验记为0分
5. 搭建一个redis集群(3主3从或3主):
redis实验: 要求: 创建一个key: 名字为mylike 内容为: 姓名全拼
实现: 3主 3从
node01: 1主1从
node02: 1主1从
node03: 1主1从
安装redis 所有节点(以下node01,node02,node03都要操作)
创建一个文件夹
安装集群相关软件包
从GW网关主机中下载相应的配置文件
Node01
Node02
Node03
启动服务 (node01 node02 node03)
查看端口号(node01 node02 node03)
配置集群Cluster
下载软件包redis-3.2.2.gem(node01操作)
Node02,node02操作)
Node01上操作
下载redis包redis-3.2.12.tar.gz
解压
创建集群(显示报错)
修改配置文件
(保存退出)
在试下之前的命令
登录
查询集群和集群信息
测试
创建一个key: 名字为mylike 内容为: guoyangyang
登陆查看
Okok
6. MHA MMM 集群模式二选一
MHA集群: 自定义
实验环境:GW为网关主机,node01,node02,node03节点主机(三主)node05测试主机
node01为主服务器 node02为从服务器 node03为从服务器
所有节点(node01 node02 node03 node05) 清空之前实验的相关数据 (删除之前实验环境数据 清空yum旧缓存 更新yum新缓存<node01,node02,node03都操作>
安装mysql-community-5.7
下载mysql配置文件
node01:
node02:
node03:
在所有节点 安装MHA
主节点: node01 安装数据库 启动服务 配置用户名和密码(node01上操作)
修改root密码 创建用户复制用户repl及mha管理用户mha
创用户
Node02操作
Node03上也是一样的
node02上配置从服务器:
保存下再查看
在主库master上绑定VIP(node01上操作)
在node02上ping vip(10.15.200.118)
(可以ping通)
在测试主机node05安装管理节点
yum install mha4mysql-node-0.58 mha4mysql-manager-0.58 -y
mkdir -p /etc/mha/scripts
wget http://10.15.200.8/files/mha/master_ip_failover -O /etc/mha/scripts/master_ip_failover
wget http://10.15.200.8/files/mha/master_ip_online_change -O /etc/mha/scripts/master_ip_online_change
wget http://10.15.200.8/files/mha/send_report -O /etc/mha/scripts/send_report
chmod 744 /etc/mha/scripts/*
wget http://10.15.200.8/files/mha/app.cnf -O /etc/mha/app.cnf
wget http://10.15.200.8/files/mha/masterha_default.cnf -O /etc/masterha_default.cnf
node05上面赋予脚本执行权限:
用 masterha_check_ssh 命令检查 ssh 互信是否成功
使用 masterha_check_repl 命令检查 mysql 主从是否正常
启动MHA:
通过日志检查MHA是否启动成功:
检查MHA集群状态:(打断node05的第二个终端在上面操作)
将node01的mysql服务停止:
在node05动态的查看日志:(打断node05上的第一个终端并在这里操作)
虚拟IP已经漂移到node02 node02由从的角色 提升为主的角色
在node02上查看下虚ip
此时发现 node03的主服务器由node01变为node02(node03上操作
此时再次查看集群的状态 为失效的状态:(node05上操作)
实验完成!!