【赛程名称】云计算赛项第一场-私有云
【赛程时间】2022-12-20 09:00:00至2022-12-20 16:00:00
某企业拟使用OpenStack搭建一个企业云平台,以实现资源池化弹性管理、企业应用集中管理、统一安全认证和授权等管理。
系统架构如图1所示,IP地址规划如表1所示。
需要软件包以及竞赛资料可私信博主
图1系统架构图
说明:
1.竞赛使用集群模式进行,比赛时给每个参赛队提供独立的租户与用户,各用户的资源配额相同,选手通过用户名与密码登录竞赛用私有云平台,创建云主机进行相应答题;
2.表中的x为工位号;在进行OpenStack搭建时的第二块网卡地址根据题意自行创建;
3.根据图表给出的信息,检查硬件连线及网络设备配置,确保网络连接正常;
4.考试所需要的账号资源、竞赛资源包与附件均会在考位信息表与设备确认单中给出;
5.竞赛过程中,为确保服务器的安全,请自行修改服务器密码;在考试系统提交信息时,请确认自己的IP地址,用户名和密码。
【任务1】私有云服务搭建[10分]
【适用平台】私有云
【题目1】基础环境配置[0.5分]
使用提供的用户名密码,登录提供的OpenStack私有云平台,在当前租户下,已经存在两台云主机(双网卡已配置)。自行检查安全组策略,以确保网络正常通信与ssh连接,然后使用CRT工具进行连接(云主机用户名:root;密码:000000),最后按以下要求配置服务器:
(1)设置控制节点主机名为controller,设置计算节点主机名为compute;
(2)修改hosts文件将IP地址映射为主机名;
完成后提交控制节点的用户名、密码和IP地址到答题框。
【题目2】Yum源配置[0.5分]
使用提供的http服务地址,在http服务下,存在centos7.9和iaas的网络yum源,使用该http源作为安装iaas平台的网络源。分别设置controller节点和compute节点的yum源文件http.repo。完成后提交控制节点的用户名、密码和IP地址到答题框。
【题目3】配置无秘钥ssh[0.5分]
配置controller节点可以无秘钥访问compute节点,配置完成后,尝试ssh连接compute节点的hostname进行测试。完成后提交controller节点的用户名、密码和IP地址到答题框。
【题目4】基础安装[0.5分]
在控制节点和计算节点上分别安装openstack-iaas软件包,根据表2配置两个节点脚本文件中的基本变量(配置脚本文件为/etc/openstack/openrc.sh)。
表2 云平台配置信息
完成后提交控制节点的用户名、密码和IP地址到答题框。
【题目5】数据库安装与调优[1分]
在controller节点上使用iaas-install-mysql.sh 脚本安装Mariadb、Memcached、RabbitMQ等服务。安装服务完毕后,修改/etc/my.cnf文件,完成下列要求:
1.设置数据库支持大小写;
2.设置数据库缓存innodb表的索引,数据,插入数据时的缓冲为4G;
3.设置数据库的log buffer为64MB;
4.设置数据库的redo log大小为256MB;
5.设置数据库的redo log文件组为2。
完成后提交控制节点的用户名、密码和IP地址到答题框。
【题目6】Keystone服务安装与使用[0.5分]
在controller节点上使用iaas-install-keystone.sh脚本安装Keystone服务。安装完成后,使用相关命令,创建用户chinaskill,密码为000000。完成后提交控制节点的用户名、密码和IP地址到答题框。
【题目7】Glance安装与使用[0.5分]
在controller节点上使用iaas-install-glance.sh脚本安装glance 服务。使用命令将提供的cirros-0.3.4-x86_64-disk.img镜像(该镜像在HTTP服务中,可自行下载)上传至平台,命名为cirros,并设置最小启动需要的硬盘为10G,最小启动需要的内存为1G。完成后提交控制节点的用户名、密码和IP地址到答题框。
【题目8】Nova安装与优化[0.5分]
在controller节点和compute节点上分别使用iaas-install-placement.sh脚本、iaas-install-nova -controller.sh脚本、iaas-install-nova-compute.sh脚本安装Nova服务。安装完成后,请修改nova相关配置文件,解决因等待时间过长而导致虚拟机启动超时从而获取不到IP地址而报错失败的问题。配置完成后提交controller点的用户名、密码和IP地址到答题框。
【题目9】Neutron安装[0.5分]
使用提供的脚本iaas-install-neutron-controller.sh和iaas-install-neutron-compute.sh,在controller和compute节点上安装neutron服务。完成后提交控制节点的用户名、密码和IP地址到答题框。
【题目10】Doshboard安装[0.5分]
在controller节点上使用iaas-install-dashboad.sh脚本安装dashboad服务。安装完成后,将Dashboard中的Djingo数据修改为存储在文件中(此种修改解决了ALL-in-one快照在其他云平台Dashboard不能访问的问题)。完成后提交控制节点的用户名、密码和IP地址到答题框。
【题目11】Swift安装[0.5分]
在控制节点和计算节点上分别使用iaas-install-swift-controller.sh和iaas-install-swift-compute.sh脚本安装Swift服务。安装完成后,使用命令创建一个名叫examcontainer的容器,将cirros-0.3.4-x86_64-disk.img镜像上传到examcontainer容器中,并设置分段存放,每一段大小为10M。完成后提交控制节点的用户名、密码和IP地址到答题框。
【题目12】Cinder创建硬盘[0.5分]
在控制节点和计算节点分别使用iaas-install-cinder-controller.sh、iaas-install-cinder-compute.sh脚本安装Cinder服务,请在计算节点,对块存储进行扩容操作,即在计算节点再分出一个5G的分区,加入到cinder块存储的后端存储中去。完成后提交计算节点的用户名、密码和IP地址到答题框。
【题目13】Manila服务安装与使用[0.5分]
在控制和计算节点上分别使用iaas-install-manila-controller.sh和iaas-install-manila-compute.sh脚本安装manila服务。安装服务后创建default_share_type共享类型(不使用驱动程序支持),接着创建一个大小为2G的共享存储名为share01并开放share01目录对OpenStack管理网段使用权限。最后提交控制节点的用户名、密码和IP地址到答题框。
【题目14】Barbican服务安装与使用[0.5分]
使用iaas-install-barbican.sh脚本安装barbican服务,安装服务完毕后,使用openstack命令创建一个名为secret01的密钥,创建完成后提交控制节点的用户名、密码和IP地址到答题框。
【题目15】Cloudkitty服务安装与使用[0.5分]
使用iaas-install-cloudkitty.sh脚本安装cloudkitty服务,安装完毕后,启用hashmap评级模块,接着创建volume_thresholds组,创建服务匹配规则volume.size,并设置每GB的价格为0.01。接下来对应大量数据设置应用折扣,在组volume_thresholds中创建阈值,设置若超过50GB的阈值,应用2%的折扣(0.98)。设置完成后提交控制节点的用户名、密码和IP地址到答题框。
【题目16】OpenStack平台内存优化[0.5分]
搭建完OpenStack平台后,关闭系统的内存共享,打开透明大页。完成后提交控制节点的用户名、密码和IP地址到答题框。
【题目17】修改文件句柄数[0.5分]
Linux服务器大并发时,往往需要预先调优Linux参数。默认情况下,Linux最大文件句柄数为1024个。当你的服务器在大并发达到极限时,就会报出“too many open files”。创建一台云主机,修改相关配置,将控制节点的最大文件句柄数永久修改为65535。配置完成后提交controller点的用户名、密码和IP地址到答题框。
【题目18】Linux系统调优-脏数据回写[1分]
Linux系统内存中会存在脏数据,一般系统默认脏数据30秒后会回写磁盘,修改系统配置文件,要求将回写磁盘的时间临时调整为60秒。完成后提交controller节点的用户名、密码和IP地址到答题框。
【任务2】私有云服务运维[10分]
【适用平台】私有云
【题目1】OpenStack开放镜像权限[0.5分]
使用OpenStack私有云平台,在OpenStack平台的admin项目中使用cirros-0.3.4-x86_64-disk.img镜像文件创建名为glance-cirros的镜像,通过OpenStack命令将glance-cirros镜像指定demo项目进行共享使用。配置完成后提交controller点的用户名、密码和IP地址到答题框。
【题目2】OpenStack消息队列调优[0.5分]
OpenStack各服务内部通信都是通过RPC来交互,各agent都需要去连接RabbitMQ;随着各服务agent增多,MQ的连接数会随之增多,最终可能会到达上限,成为瓶颈。使用自行搭建的OpenStack私有云平台,分别通过用户级别、系统级别、配置文件来设置RabbitMQ服务的最大连接数为10240,配置完成后提交修改节点的用户名、密码和IP地址到答题框。
【题目3】OpenStack Glance镜像转换[1.5分]
使用自行搭建的OpenStack平台。在 HTTP 服务中存在一个镜像为 CentOS7.5-compress.qcow2 的镜像,请使用 qemu 相关命令,将镜像转换为raw格式镜像,转换后的镜像命名为 chinaskill-compress.raw 并存放在/root 目录下。完成后提交controller点的用户名、密码和IP地址到答题框。
【题目4】glance对接cinder后端存储[0.5分]
在自行搭建的OpenStack平台中修改相关参数,使glance可以使用cinder作为后端存储,将镜像存储于cinder卷中。使用cirros-0.3.4-x86_64-disk.img文件创建cirros-image镜像存储于cirros-cinder卷中,通过cirros-image镜像使用cinder卷启动盘的方式进行创建虚拟机。完成后提交修改节点的用户名、密码和IP地址到答题框。
【题目5】OpenStack Heat运维:创建硬盘[1分]
在自行搭建的OpenStack私有云平台上,在/root目录下编写Heat模板heat_cinder.yaml,要求执行yaml文件可以创建名为heat-cinder,大小为2G的云硬盘。完成后提交控制节点的用户名、密码和IP地址到答题框。(在提交信息前请准备好yaml模板执行的环境)
【题目6】OpenStack Glance存储限制[1分]
在OpenStack平台上,请修改glance后端配置文件,将用户的镜像存储配额限制为20GB。完成后提交控制节点的用户名、密码和IP地址到答题框。
【题目7】OpenStack Nova优化[1.5分]
OpenStack平台若意外断电,在电力系统恢复后,OpenStack平台可以自启动,但是运行的云主机需要管理员手动开启,在OpenStack平台中配置虚拟机自启动,当宿主机启动后,把虚拟机恢复到之前的状态,如果虚拟机之前是关机,则宿主机启动后,虚拟机也是关机状态;如果虚拟机之前是开机状态,则宿主机启动后,虚拟机还是开机状态中运行的虚拟机。配置完成后提交改动节点的用户名、密码和IP地址到答题框。
【题目8】Redis一主二从三哨兵模式[1分]
使用提供的OpenStack私有云平台,申请三台CentOS7.9系统的云主机,使用提供的http源,在三个节点自行安装Redis服务并启动,配置Redis的访问需要密码,密码设置为123456。然后将这三个Redis节点配置为Redis的一主二从三哨兵架构,即一个Redis主节点,两个从节点,三个节点均为哨兵节点。配置完成后提交Redis主节点的用户名、密码和IP地址到答题框。
【题目9】应用部署:堡垒机部署[0.5分]
使用提供的OpenStack平台申请一台CentOS7.9的云主机,使用提供的软件包安装JumpServer堡垒机服务,并配置使用该堡垒机对接自己安装的controller和compute节点。完成后提交JumpServer节点的用户名、密码和IP地址到答题框。
【题目10】skywalking服务部署与应用[1分]
使用提供的OpenStack私有云平台,申请一台centos7.9系统的云主机,使用提供的软件包安装Elasticsearch服务和skywalking服务,将skywalking的UI访问端口修改为8888。接下来再申请一台CentOS7.9的云主机,用于搭建gpmall商城应用,并配置SkyWalking Agent,将gpmall的jar包放置探针并启动。安装与配置完成后提交skywalking节点的用户名、密码和IP地址到答题框。
【题目11】Linux内核优化[1分]
在使用Linux服务器的时候,TCP协议规定,对于已经建立的连接,网络双方要进行四次挥手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。因为服务器程序要同时管理大量连接,所以很有必要保证无用的连接完全断开,否则大量僵死的连接会浪费许多服务器资源。使用一台CentOS7.9云主机,修改相应的配置文件,要求如下:
(1)NAT 开启 IP 转发支持;
(2)FIN-WAIT-2 状态的时间设置为 30s;
完成后提交修改节点的用户名、密码和IP地址到答题框。
【任务3】私有云运维开发[10分]
【适用平台】私有云
【题目1】Ansible服务部署:部署MariaDB集群[2分]
使用OpenStack私有云平台,创建4台系统为centos7.9的云主机,其中一台作为Ansible的母机并命名为ansible,另外三台云主机命名为node1、node2、node3;使用这一台母机,编写Ansible脚本(在/root目录下创建example目录作为Ansible工作目录,部署的入口文件命名为cscc_install.yaml),对其他三台云主机进行安装高可用数据库集群(MariaDB_Galera_cluster,数据库密码设置为123456)的操作(所需的安装包在HTTP服务中)。完成后提交Ansible节点的用户名、密码和IP地址到答题框。(考试系统会连接到你的Ansible节点,去执行Ansible脚本,请准备好Ansible运行环境,以便考试系统访问)
【题目2】Ansible服务部署:部署ELK集群服务[2分]
使用赛项提供的OpenStack私有云平台,创建三台CentOS7.9系统的云主机分别命名为elk-1、elk-2和elk-3,Ansible主机可以使用上一题的环境。要求Ansible节点编写剧本,执行Ansible剧本可以在这三个节点部署ELK集群服务(在/root目录下创建install_elk目录作为ansible工作目录,部署的入口文件命名为install_elk.yaml)。具体要求为三个节点均安装Elasticserach服务并配置为Elasticserach集群;kibana安装在第一个节点;Logstash安装在第二个节点。(需要用到的软件包在HTTP服务下)完成后提交ansible节点的用户名、密码和IP地址到答题框。(考试系统会连接到ansible节点,执行ansible脚本,准备好环境,以便考试系统访问)
【题目3】Python运维开发:基于OpenStack Restful API实现镜像上传[2分]
使用OpenStack all-in-one镜像,创建OpenStack Python运维开发环境。云主机的用户/密码为:“root/Abc@1234”,OpenStack的域名/账号/密码为:“demo/admin/000000”。
提示说明:python脚本文件头建议加入“#encoding:utf-8”避免编码错误;测试脚本代码用python3命令执行与测试。
在controller节点的/root目录下创建api_image_manager.py脚本,编写python代码对接OpenStack API,完成镜像的创建与上传。创建之前查询是否存在“同名镜像”,如果存在先删除该镜像。
(1)创建镜像:要求在OpenStack私有云平台中上传镜像cirros-0.3.4-x86_64-disk.img,名字为cirros001,disk_format为qcow2,container_format为bare。
(2)查询镜像:查询cirros001的详细信息,并以json格式文本输出到控制台。
完成后提交OpenStack Python运维开发环境Controller节点的IP地址,用户名和密码提交。
【题目4】Python运维开发:基于Openstack Python SDK实现云主机创建[2分]
使用已建好的OpenStack Python运维开发环境,在/root目录下创建sdk_server_manager.py脚本,使用python-openstacksdk Python模块,完成云主机的创建和查询。创建之前查询是否存在“同名云主机”,如果存在先删除该镜像。
(1)创建1台云主机:云主机信息如下:
云主机名称如下:server001
镜像文件:cirros-0.3.4-x86_64-disk.img
云主机类型:m1.tiny
网络等必要信息自己补充。
(2)查询云主机:查询云主机server001的详细信息,并以json格式文本输出到控制台。
完成后提交OpenStack Python运维开发环境 Controller节点的IP地址,用户名和密码提交。
【题目5】Python运维开发:云主机类型管理的命令行工具开发[2分]
使用已建好的OpenStack Python运维开发环境,在/root目录下创建flavor_manager.py脚本,完成云主机类型的管理,flavor_manager.py程序支持命令行参数执行。
提示说明:Python标准库argparse模块,可以提供命令行参数的解析。
要求如下:
(1)程序支持根据命令行参数,创建1个多云主机类型。返回response。
位置参数“create”,表示创建;
参数“-n”支持指定flavor名称,数据类型为字符串类型;
参数“-m”支持指定内存大小,数据类型为int,单位M;
参数“-v”支持指定虚拟cpu个数,数据类型为int;
参数“-d”支持磁盘大小,内存大小类型为int,单位G;
参数“-id”支持指定ID,类型为字符串。
参考运行实例:
python3 flavor_manager.py create -n flavor_small -m 1024 -v 1 -d 10 -id 100000
(2)程序支持查询目前admin账号下所有的云主机类型。
位置参数“getall”,表示查询所有云主机类型;
查询结果,以json格式输出到控制台。
参考执行实例如下:
python3 flavor_manager.py getall
(3)支持查询给定具体名称的云主机类型查询。
位置参数“get”,表示查询1个云主机类型;
参数“-id”支持指定ID查询,类型为string。
控制台以json格式输出创建结果。
参考执行实例如下:
python3 flavor_manager.py get -id 100000
(4)支持删除指定ID的云主机类型。
位置参数“delete”,表示删除一个云主机类型;
参数“-id”支持指定ID查询,返回response,控制台输出response。
参考执行实例如下:
python3 flavor_manager.py delete -id 100001