“云计算”竞赛赛卷
XX公司是一家科技公司,先需要搭建公司的业务网站,公司技术人员现将业务网站部署在物理主机之中。
随着公司业务网站访问量的不断增加,考虑到成本和维护的原因,公司决定将该系统从虚拟主机迁移到公有云平台中。
国内一家成熟的公有云提供商,为客户提供云主机,云网络,云硬盘,弹性伸缩,负载均衡,可创建Web服务,共享文件存储服务。
请根据上述该公有云平台的特性和业务网站的部署架构图(如图1所示),为XX公司的业务平台设计一个合理的基础设施架构,将该服务迁移到该公有云平台中,并完成公有云中的各项运维工作。
任务一:基础设施建设。(分值:145分)
1、创建三个VPC(名称自定义),并且将Database01和云计算redis分别更改到不同VPC下。【10分】
注意:比赛过程中如果出现子网重复,可以将子网最后一个数字(掩码)更改。
注意:最后一张截图有则的10分,没有则0分。
2、按照2核CPU、4G内存、40G硬盘创建四台分别名为node1、node2、Database01和redis的云主机。【10分】
云主机规格:
具体内容 | 具体内容 |
CPU架构 | x86计算 |
规格 | s6.large.2 |
镜像类型 | 公共镜像 |
镜像 | CentOS 7.6 |
系统盘 | 通用型SSD 40G |
云服务器名称 | 自定义 |
VPC | 使用上一步创建的VPC |
其它参数 | 默认 |
注:关于云服务器规格,如果当前区域下没有要求规格,可以购买相近的规格,但是不能规
格变化太大,具体需要申请比赛现场人员。
注意:密码和名字可以自定义。(评分点,前面红色的圈,是得分点,如果有一项不满足,直接0分)。
3、配置对等路由将Database01、redis和node1、node2所处的网络打通并保证四台主机之间网络可用。【25分】
使用ping命令检测database01和node01和node02的连通性。
同理,配置redis和node01、node02的对等连接并验证连通性。
注意:过程10分,最后出结果15分(要求保证database01、redis和node1、node2服务器之间的通信,如果不行,则直接扣15分)。
4、创建一个10G的云硬盘,并将其挂载到Database01的云主机上,并将其进行格式成ext4的格式。【20分】
注意:云硬盘购买成功10分,成功格式化10分。
5、将上一步创建的云硬盘挂载到Database01的/nfs/code下,保证可读写。【20分】
注意:查到挂载点10分,在挂载点写文件成功10分。
6、在Database01的ECS上配置nfs服务并且将/nfs/code共享。【20分】
然后在node01或是node02上测试连接。
注意:在node2上面挂载成功和在/mnt/目录下面查看到在Database01上面上一题创建的zj.txt得全分,任何一部少了得0分。
sudo yum -y install nfs-utils
vim /etc/exports
/nfs/code 192.168.*(rw,no_root_squash)
systemctl restart nfs
systemctl enable nfs
mount -t nfs ip地址:/nfs/code /mnt
7、创建一个负载均衡器,将node1和node2加入负载均衡的后端。设置一个可用的服务IP,服务端口为80,并绑定一个可用的弹性公网IP,对弹性公网IP进行Web访问测试。【40分】
具体内容 | 具体参数 |
实例规格类型 | 共享型 |
网络类型 | 公网 |
所属VPC | VPC-01 |
弹性公网IP | 新创建 |
名称 | 自定义 |
监听器具体内容 | 具体参数 |
名称 | 自定 |
前端协议;端口 | HTTP(七层);80 |
后端服务器组具体内容 | 具体参数 |
后端服务器组 | 新创建 |
名称 | 自定 |
分配策略类型 | 加权轮询算法 |
健康检查 | 开启 |
添加服务器 | 具体情况 |
端口 | 80 |
权重 | 1 |
注意健康状态,如果是异常扣20分(将防火墙关掉)。
nohup python -m SimpleHTTPServer 80 > /dev/null 2>&1 &
任务二:业务部署和迁移。(分值655分)
1、使用node1,node2安装部署apache,PHP服务,并确保能对外提供业务。【50分】
最终效果图:
在浏览器上填写node1和node2的弹性公网IP。
yum install -y httpd php php-fpm php-server php-mysql
systemctl start httpd
systemctl start php-fpm
systemctl enable httpd
systemctl enable php-fpm
注意:出现此张效果图得25分。
在浏览器中输入服务器的公网IP
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
systemctl restart httpd
注意:出现此效果图得25分。
2、在Database01云主机上部署MySQL服务,并且保证node1、node2能够访问mysql服务,并且使用SQL语句创建后续需要使用得数据库(数据库名自定义)。【100分】
注意:出现此效果得40分。
注意:评分时截图要求要有这条命令,如果没有这条命令第二部分只有10分。
同理再创建一个数据库。
注意:创建好数据库没有报错,且截图完整,确认查看数据库且确认数据库得60分。
方案一:
TMOUT=0
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
yum localinstall mysql57-community-release-el7-8.noarch.rpm
yum repolist enabled | grep "mysql.*-community.*"
yum install mysql-community-server
systemctl start mysqld
systemctl status mysqld
systemctl enable mysqld
systemctl daemon-reload
grep 'temporary password' /var/log/mysqld.log
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Huawei123!';
use mysql;
update user set host = '%' where user = 'root';
select host,user from user;
flush privileges;
方案二
yum -y install mariadb mariadb-server
systemctl enable mariadb.service
systemctl start mariadb.service
mysql_secure_installation
use mysql;
update user set host = '%' where user = 'root';
select host,user from user;
flush privileges;
3、使用现有软件包在node1、node2安装Discuz网站。【100分】
最终效果图。
wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip
unzip Discuz_X3.2_SC_UTF8.zip
ls
cp -r upload/* /var/www/html/
chmod -R 777 /var/www/html
systemctl restart httpd
最终的结果。Node2同理配置(注意,node1和node2在MySQL上面的数据库不能公用的,需要单独创建)。
注意:本道题以最终结果为主,如果没有最终结果,那么以命令数为准,最多50分,有最终结果得100分。
4、在云主机redis上部署docker容器服务,在容器当中部署redis服务,并且配置node-1、node-2能够访问redis服务。(在网站配置文件【config/config_global.php】当中进行配置redis连接,部署docker采用shell脚本的方式部署,如果不是,则部署docker项不得分)【250分】
注:其中使用脚本部署docker[150分],使用docker构建redis容器[80分],配置连接[20分]。
使用远程登录,登录到redis中。
在/home/目录先创建docker.sh脚本
最终效果:
注意:根据脚本完成程度给分,有脚本,有最后效果得150分,没有脚本0分。
vim docker.sh
#/bin/bash
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl start docker
systemctl enable docker
systemctl status docker
#!/bin/bash
#/bin/bash
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl start docker
systemctl enable docker
systemctl status docker
docker search redis
docker pull redis:latest
docker images
mkdir -p /home/docker/redis/{conf,data}
cd /home/docker/redis
wget https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf -O conf/redis.conf
read -p "Please input password: " passwword
sed -i 's/^bind 127.0.0.1.*/#bind 127.0.0.1/' conf/redis.conf
sed -i 's/^protected-mode yes/protected-mode no/' conf/redis.conf
sed -i 's/logfile ""/logfile "access.log"/' conf/redis.conf
sed -i 's/# requirepass foobared/requirepass $passwword/' conf/redis.conf
sed -i 's/appendonly no/appendonly yes/' conf/redis.conf
systemctl status docker
docker run \
-p 6379:6379 \
-v $PWD/data:/data \
-v $PWD/conf/redis.conf:/etc/redis/redis.conf \
--privileged=true \
--name myredis \
-d redis redis-server /etc/redis/redis.conf
docker exec -it ad7c2fa48c98 /bin/bash
redis-cli -a Lexus2713@
node节点
wget https://pecl.php.net/get/redis-4.3.0.tgz
tar -xvf redis-4.3.0.tgz
yum -y install php-devel
cd redis-4.3.0
phpize
./configure --with-php-config=/usr/bin/php-config --enable-redis
make && make install
vim /etc/php.ini
extension_dir = "/usr/lib64/php/modules/"
extension="redis.so"
systemctl restart httpd
注意:出现此截图得80分,如果没有得0分,只完成中间过程不得分。
注意:此题以此截图为主,有最终结果得20分,没有结果截图为0分。
5、将node1、node2配置负载均衡服务并验证负载均衡和弹性伸缩服务。【85分】
第一个是对与ELB的结果验证。
在浏览器输入http://ELB绑定的EIP
最终的效果:
标红处的IP的ELB的公网IP,以最终的效果为主。
注意:本段以最终结果为主,有效果截图得30分,没有0分。
名称自定义,最大实例:2,期望实例:0,最小实例:0。
其他选项默认就行。
然后配置伸缩策略,每晚七点到第二天到早上六点增加一个实例。
注意:本道题目的分数组成是(ELB的分数+AS配置的分数)ELB的分数是30分,如果ELB有最终效果则得30分,如果没有则0分,私有镜像创建成功得20分,AS步骤正确创建成功关键点正确得35分。
6、云监控服务界面,也可以查看主机监控、云服务监控信息,需要注意的是在进行主机监控时需提前安装插件,要求在云服务监控当中设置磁盘读带宽监控指标。【50分】
注意:云主机监控得分点在以此处得插件状态,必须全部处于运行中,四分一个插件,全部处于运行中可得20分,
云服务监控是设置监控指标(只设置磁盘读带宽指标)以最终效果为得分点,如果跟效果图一致则得30分,反之则0分。
云服务监控最终效果图。
7、在安全组上配置阻止445端口的流量。【20分】
注意:本题的入方向设置成功是10分,出方向设置成功10分,总分20分
任务三:云网络搭建。(分值:200分)
1、根据要求在ENSP当中构建网络。【30分】
注意:得分点在于和效果图一样,效果图中得设备一个都不能少,必须跟效果图得图标一样才能得30分,反之0分。
2、根据需求给端口配置access口和trunk口(要求与PC相连得access口,其他口配置trunk口)。【70分】
Access口配置实例:(20分)
参考命令:
port link-type access
trunk口配置样例:(5分)
参考命令:
port link-type trunk
port trunk allow-pass vlan all
注意:必须有命令截图,有命令截图得70分,不然0分。
3、在路由器上和防火墙上面配置路由规则保证两个PC机之间的流量通信。【100分】
注意:具体路由规则不做限制,要求必须有命令截图,而且必须保证流量经过所有设备,最后是的两个PCping通得结果为准。