"巴渝工匠杯"2022年重庆市职业院校技能大赛(高职组)云计算样题
需要软件包环境可私信博主
【赛程名称】云计算赛项第一场次-私有云
某企业拟使用OpenStack搭建一个企业云平台,以实现资源池化弹性管理、企业应用集中管理、统一安全认证和授权等管理。
系统架构如图1所示,IP地址规划如表1所示。
图1系统架构图
表1 IP地址规划
说明:
1.竞赛使用集群模式进行,比赛时给每个参赛队提供独立的租户与用户,各用户的资源配额相同,选手通过用户名与密码登录竞赛用私有云平台,创建云主机进行相应答题;
2.表中的x为工位号;在进行OpenStack搭建时的第二块网卡地址根据题意自行创建;
3.根据图表给出的信息,检查硬件连线及网络设备配置,确保网络连接正常;
4.考试所需要的账号资源、竞赛资源包与附件均会在考位信息表与设备确认单中给出;
5.竞赛过程中,为确保服务器的安全,请自行修改服务器密码;在考试系统提交信息时,请确认自己的IP地址,用户名和密码。
【任务1】基础运维任务[5分]
【适用平台】私有云
【题目1】基础环境配置[1.5分]
使用提供的用户名密码,登录提供的OpenStack私有云平台,自行使用CentOS7.5镜像创建两台云主机,控制节点flavor使用4v_6G_100G的配置,计算节点flavor使用4v_8G_100G_50G的配置,存储节点flavor使用4v_4G_100G的配置。第一张网卡使用提供的网络,第二张网卡使用的网络自行创建(网段为10.10.X.0/24,X为工位号)。创建完云主机后确保网络正常通信,然后按以下要求配置服务器:
(1)设置控制节点主机名为controller,设置计算节点主机名为compute,设置存储节点主机名为stroage;
(2)修改hosts文件将IP地址映射为主机名;
完成后提交控制节点的用户名、密码和IP地址到答题框。
打分点:
1.使用 hostnamectl 命令查看主机名为 controller 计 0.5 分
2.查看 hosts 文件中有正确的主机名和 IP 映射计 0.5 分
3.控制节点正确使用两块网卡计 0.5 分
【题目 2】Yum 源配置[1分]
配置FileNode,以ftp服务的方式提供后续所使用的各类信息。
使用FileNode提供的ftp服务地址,在ftp服务下,存在 centos7.5 和 iaas 的网络 yum 源,使用该 ftp源作为安装 iaas 平台的网络源。分别设置 controller 节点、compute节点、stroage节点的 yum 源文件ftp.repo。完成后提交控制节点的用户名、密码和 IP 地址到答题框。
打分点:
1.查看/etc/yum.repos.d/ftp.repo 文件,有正确的 baseurl 路径,计 1 分
【题目 3】时间同步配置[1.5 分]
在 controller 节点上部署 chrony 服务器,允许其他节点同步时间,启动服务并设置为开机启动;在 compute 节点、stroage节点上指定 controller 节点为上游 NTP 服务器,重启服务并设为开机启动。完成后提交控制节点的用户名、密码和 IP 地址到答题框。
打分点:
1.查看/etc/chrony.conf 配置文件,有正确的配置文件计 1 分
2.查看时间同步服务的状态,正常计 0.5 分
【题目 4】存储节点分区[1分]
在 stroage节点上利用空白分区划分 2 个 20G 分区。完成后提交计算节点的用户名、密码和 IP 地址到答题框。
打分点:
1.使用 lsblk 命令查看分区,有两个 20G 分区计 1 分,每个 0.5 分
【任务 2】OpenStack 搭建任务[10 分]
【适用平台】私有云
【题目 1】基础安装[1 分]
任务需要完成 openstack 平台的安装搭建及运维任务(无安装脚本),表 2 提供了在安装过程中需要使用相关服务参数。
表 2 云平台配置信息
使用提供的脚本框架 iaas-pre-host.sh 和 openrc.sh 环境变量文件,填充脚本(只需填充中文注释下的内容),初始化controller、compute、stroage节点。(脚本框架 install_openstack.tar.gz 软件包在 ftp服务下)安装完成后提交控制节点的用户名、密码和 IP 地址到答题框。
打分点:
1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分
【题目 2】数据库与基础服务安装[1 分]
使用提供的脚本框架 iaas-install-mysql.sh,填充脚本(只需填充中文注释下的内容), 在 controller 节点上安装 mariadb、mencached、rabbitmq 等服务并完成相关配置。完成后提交控制节点的用户名、密码和 IP 地址到答题框。
打分点:
1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分
【题目 3】Keystone 服务安装[1 分]
使用提供的脚本框架 iaas-install-keystone.sh,填充脚本(只需填充中文注释下的内容), 在 controller 节点上安装 keystone 服务并完成相关配置。完成后提交控制节点的用户名、密码和 IP 地址到答题框。
打分点:
1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分
【题目 4】Glance 安装[1 分]
使用提供的脚本框架 iaas-install-glance.sh,填充脚本(只需填充中文注释下的内容), 在 controller 节点上安装 glance 服务并完成相关配置。安装完成后提交控制节点的用户名、密码和 IP 地址到答题框。
打分点:
1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分
【题目 5】Nova 安装[1 分]
使用提供的脚本框架 iaas-install-nova-controller.sh 和 iaas-install-nova-compute.sh,填充脚本(只需填充中文注释下的内容),在 controller 和 compute 节点上安装 nova 服务并完成配置。完成后提交控制节点的用户名、密码和 IP 地址到答题框。
打分点:
1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分
【题目 6】Neutron 安装[1 分]
使用提供的脚本框架iaas-install-neutron-controller.sh 和iaas-install-neutron-compute.sh, 填充脚本(只需填充中文注释下的内容),在 controller 和 compute 节点上安装 neutron 服务并完成配置。完成后提交控制节点的用户名、密码和 IP 地址到答题框。
打分点:
1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分
【题目 7】Doshboard 安装[1 分]
使用提供的脚本框架 iaas-install-dashboard.sh,填充脚本(只需填充中文注释下的内容),在 controller 节点上安装 dashboard 服务并完成相关配置。完成后提交控制节点的用户名、密码和 IP 地址到答题框。
打分点:
1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分
【题目 8】Cinder 安装[1 分]
使用提供的脚本框架 iaas-install-cinder-controller.sh 和 iaas-install-cinder-stroage.sh,填充脚本(只需填充中文注释下的内容),在 controller 和 stroage节点上安装 cinder 服务并完成配置。完成后提交控制节点的用户名、密码和 IP 地址到答题框。
打分点:
1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分
【题目 9】Swift安装[1 分]
请根据提示,修改stroage的参数配置,增加3块硬盘。使用提供的脚本框架iaas-install-swift-controller.sh 和 iaas-install-swift-stroage.sh,填充脚本(只需填充中文注释下的内容),在 controller 和 stroage节点上安装 swift 服务并完成配置。完成后提交控制节点的用户名、密码和 IP 地址到答题框。
打分点;
1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分
【题目 10】Heat 安装[1 分]
使用提供的脚本框架 iaas-install-heat.sh,填充脚本(只需填充中文注释下的内容),在controller 节点上安装 heat 服务并完成相关配置。完成后提交控制节点的用户名、密码和 IP 地址到答题框。
打分点:
1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分
【任务 3】OpenStack API 运维任务[10 分]
【适用平台】私有云
【题目 1】redis 主从[2分]
使用赛项提供的 OpenStack 私有云平台,申请两台 CentOS7.5 系统的云主机,使用提供的http源,在两个节点安装 redis服务并启动,配置 redis的访问需要密码,密码设置为123456。然后将这两个 redis 节点配置为 redis 的主从架构。配置完成后提交 redis 主节点的用户名、密码和 IP 地址到答题框。
计分点:
1.查看 redis 的 info 信息,有 connected_slaves:1 计 1 分
2.查看/etc/redis.conf,有关闭保护模式计 1 分
【题目 2】上传镜像[2 分]
在自行搭建的OpenStack 私有云平台或提供的all-in-one 平台上,要求在上传镜像 cirros-0.3.4-x86_64-disk.img,名字为 pvm_image, disk_format 为 qcow2,container_format 为 bare。配置完成后提交 controller 控制节点的用户名、密码和 IP 地址到答题框。
打分点:
1.查看镜像是否被正确创建,即镜像的详细信息是否正确 计 2 分
【题目 3】使用 python 调用 api 实现云平台服务检查[2 分]
在自行搭建的OpenStack 私有云平台或提供的all-in-one 平台上。在controller 节点的/root 目录下创建 view_all.py 文件,编写 python 代码对接 OpenStack API,完成云平台的状态检查操作。执行完代码要求打印输出平台中各个服务的状态,3秒检查一次。根据上述要求编写 python 代码,完成后,将 controller 节点的 IP 地址,用户名和密码提交。(考试系统会连接到你的 controller 节点,去执行 python 脚本,请准备好运行的环境,以便考试系统访问)
打分点:
1.执行脚本有正确返回 计 1 分
2.查看是否调用了api 计 1 分
【题目 4】数据库的HA配置[2 分]
使用赛项提供的 OpenStack 私有云平台,申请三台 CentOS7.5 系统的云主机,分别命令为 node1、node2、node3,(使用提供的 mariadb-repo.tar.gz 软件包在 ftp服务下),在这三个节点上安装数据库服务,数据库密码设置为 123456。将这三个节点配置为数据库高可用集群即 MariaDB_Galera_Cluster。配置完高可用服务后,安装 haproxy 负载均衡服务。配置node1 节点为负载均衡的窗口,配置负载均衡为轮询算法;HA 服务监听的端口为 node1 节点的 3307 端口;配置访问三个节点的权重依次为 1,2,4。配置完成后提交 node1 节点的用户名、密码和 IP 地址到答题框
打分点;
1.查看数据的状态 mysql -uroot -p123456 -e "show status like 'wsrep_ready';",返回 ON 计 0.4 分
2.mysql -uroot -p123456 -e "show status like 'wsrep_cluster_size';"查看集群数,返回 3 计 0.6 分
3.查看端口有 3307 计 0.4 分
4.查看 ha 的配置文件,权重配置正确计 0.6 分
【题目 5】业务网站的安全配置[2 分]
在自行搭建的OpenStack 私有云平台或提供的all-in-one 平台上,申请一台 CentOS7.5 系统的云主机apache,在这个节点上安装LAMP,并修改首页文件显示php的基本信息(phpinfo)。网站配置完成后,对其安全组进行定制,只打开LAMP所需要使用的端口的访问权限,其他端口流量均拦截。配置完成后提交 apache主节点的用户名、密码和 IP 地址到答题框。
打分点:
1.查看是否安装完成LAMP 计 1 分
2.获取网站首页返回是否正确 计 1 分
【任务 4】OpenStack 运维开发任务[10 分]
【适用平台】私有云
【题目 1】使用 python 调用 sdk 实现创建 user[2 分]
在自行搭建的 OpenStack 私有云平台或提供的 all-in-one 平台上,根据 FileNode节点中提供的 Python-api.tar.gz 软件包,完成 python3.6软件和依赖库的安装。在 controller 节点的/root目录下创建 create_user.py 文件,编写 python 代码对接 OpenStack python SDK,完成用户的创建。要求在 OpenStack 私有云平台中创建用户 chinaskill,描述为"SDK create user!"。执行完代码要求输出"用户创建成功"。根据上述要求编写 python 代码,完成后,将 controller 节点的IP 地址,用户名和密码提交。(考试系统会连接到你的 controller 节点,去执行 python 脚本, 请准备好运行的环境,以便考试系统访问)
打分点:
1.检查 python 版本是否为 3.6.8 计 0.3 分
2.检查 pip 版本计 0.3 分
3.执行脚本有正确的返回计 0.2 分
4.查看用户是否被正确创建计 0.2 分
5.查看用户是否有正确的描述计 0.2 分
6.查看是否有正确的调用keystone 的方式、调用 user 接口、使用 sdk 等方法计 0.8 分
【题目 2】使用 python 调用 sdk 实现创建 flavor[2 分]
在自行搭建的OpenStack 私有云平台或提供的all-in-one 平台上。在controller 节点的/root 目录下创建 create_flavor.py 文件,在该文件中编写 python 代码对接 OpenStack python SDK,要求在openstack 私有云平台上创建一个云主机类型,名字为 pvm_flavor、vcpu 为 1 个、内存为1024m、硬盘为 20G、ID 为 9999。执行完代码要求输出"云主机类型创建成功"。根据上述要求编写 python 代码,完成后,将 controller 节点的 IP 地址,用户名和密码提交。(考试系统会连接到你的 controller 节点,去执行 python 脚本,请准备好运行的环境,以便考试系统访问)
打分点:
1.执行脚本有正确的返回计 0.2 分
2.查看 flavor 是否被正确创建,即 flavor 的详细信息是否正确计 0.2 分
3.查看是否有调用了 flavor 的接口计 0.3 分
4.查看是否有正确的调用keystone 的方式、使用 sdk 等方法计 1.3 分
【题目 3】使用 python 调用 sdk 实现创建网络[2 分]
在自行搭建的OpenStack 私有云平台或提供的all-in-one 平台上。在controller 节点的/root 目录下创建 create_network.py 文件,编写 python 代码对接 OpenStack python SDK,完成网络的创建。要求:(1)为平台创建内部网络 pvm_int,子网名称为 pvm_intsubnet;(2)设置云主机网络子网 IP 网段为 192.168.x.0/24(其中 x 是考位号),网关为 192.168.x.1(如果存在同名内网,代码中需先进行删除操作)。执行完代码要求输出"网络创建成功"。根据上述要求编写 python 代码,完成后,将 controller 节点的 IP 地址,用户名和密码提交。(考试系统会连接到你的 controller 节点,去执行 python 脚本,请准备好运行的环境,以便考试系统访问
打分点:
1.执行脚本有正确的返回计 0.3 分
2.查看网络是否被正确创建,即网络的详细信息是否正确计 0.3 分
3.查看是否有调用了 net 的接口计 0.3 分
4.查看是否有正确的调用keystone 的方式、使用 sdk 等方法计 1.1 分
【题目 4】使用 python 调用 sdk 实现创建云主机[2 分]
在自行搭建的OpenStack 私有云平台或提供的all-in-one 平台上。在controller 节点的/root 目录下创建 create_vm.py 文件,编写 python 代码对接 OpenStack python SDK,完成云主机的创建。要求使用 pvm_image、pvm_flavor、pvm_intsubnet 创建 1 台云主机 pvm1(如果存在同名虚拟主机,代码中需先进行删除操作)。执行完代码要求输出"创建云主机成功"。根据上述要求编写 python 代码,完成后,将 controller 节点的 IP 地址,用户名和密码提交。(考试系统会连接到你的 controller 节点,去执行 python 脚本,请准备好运行的环境,以便考试系统访问)
打分点:
1.执行脚本有正确的返回计 0.2 分
2.查看云主机是否被正确创建,即云主机的详细信息是否正确计 0.2 分
3.查看是否有调用了 servers 的接口计 0.2 分
4.查看是否有调用了 images 的接口计 0.2 分
5.查看是否有调用了 flavor 的接口计 0.2 分
4.查看是否有正确的调用keystone 的方式、使用 sdk 等方法计 1 分
【题目 5】Ansible 部署服务[2 分]
使用赛项提供的 OpenStack 私有云平台,创建 2 台系统为 centos7.5 的云主机,其中一台作为 ansible 的母机并命名为 ansible,另外一台云主机命名为 node1,通过 http 服务中的ansible.tar.gz 软件包在 ansible 节点安装 ansible 服务;并用这台母机,编写 ansible 脚本(在/root 目录下创建 ansible_ftp 目录作为 ansible 工作目录, 部署的入口文件命名为install_ftp.yaml)。install_ftp.yaml 文件中需要完成的内容为
(1)yaml 中被执行节点为 node1,执行者为 root;
(2)使用 copy 模块将 ansible 节点的 local.repo 传到 node 节点;(local.repo 用于配置
(3)node 节点的 yum 源,可自行创建)
(4)使用 yum 模块安装 ftp 服务;
(5)使用 service 模块启动 ftp 服务。
完成后提交 ansible 节点的用户名、密码和 IP 地址到答题框。(考试系统会连接到 ansible节点,执行 ansible 脚本,准备好环境,以便考试系统访问)
打分点:
1.不使用 role 的方式,直接在 install_ftp.yaml 中编写
2.执行 yaml 文件,没有报错计 0.2 分
3.查看 ftp 服务状态为正确计 0.2分
4.查看 yaml 文件,是否用了 copy、yum、service 模块计 0.6 分
【赛程名称】云计算赛项第二场次-容器云
说明:完成本任务需要两台安装了 CentOS7.5 操作系统的云主机 master 和 node,镜像包中有本次容器云平台部署和运维所需的所有文件。
云梦公司技术部产品开发上线周期长,用户规模大且版本更新频繁。新版本的每次上线,产品都要承受极大的压力。引入 CICD (Continuous Integration 持续集成、Continuous Delivery 持续交付) 和灰度发布成了公司的当务之急,研发团队决定搭建基于 Kubernetes 的CICD 环境,希望基于这个平台来实现 DevOps 的部分流程,并基于 Kubernetes 实现业务系统的灰度发布。
为了能够让云梦公司开发的 web 应用系统产品能够缩减开发周期,快速迭代版本,并实现业务从老版本到新版本的平滑过渡,避免升级过程中出现的问题对用户造成的影响。研发部决定使用微服务架构,实现基于 Kubernetes 的容器化部署、CICD 和灰度发布。
节点规划如表 1 所示。
表 1 容器云平台节点规划
节点角色 主机名 VCPUS 内存 硬盘
Master、Harbor、CICD master 8 12G 100G
Worker Node node 4 8G 100G
【任务 1】Docker CE 及私有仓库安装任务[5 分]
【适用平台】私有云
【题目 1】安装 Docker CE 和 Docker Compose[1 分]
使用提供的 centos7.5-paas 镜像启动两台云主机 master 和 node,flavor 如上表所示。在master、node 各节点中分别安装 DockerCE 和 docker-compose。
完成后提交 master 节点的用户名、密码和 IP 到答题框。
打分点:
1.查看 docker 版本是否安装正确计 0.5 分
2.查看 docker-compose 版本安装是否正确计 0.5 分
【题目 2】安装私有仓库[1 分]
在 master 节点安装私有仓库,导入/opt/images 目录下所有镜像,并推送到私有仓库。
完成后提交 master 节点的用户名、密码和 IP 到答题框。
打分点:
1.查看 Harbor 关联的容器是否正常运行计 0.5 分
2.查看 Harbor 是否正确安装计 0.5 分
【题目 3】容器编排[3 分]
在 master 节点上编写 /root/docker-compose.yaml 文件(需要用到的镜像包 SkyWalking.tar
在 http 服务下),具体要求如下:
(3)容器 1 名称:elasticsearch;镜像:elasticsearch:7.8.0;端口映射:9200:9200;
(4)容器 2 名称:oap;镜像:apache/skywalking-oap-server:8.0.1-es7;端口映射:11800:11800,12800:12800;
(5)容器 3 名称:ui;镜像:apache/skywalking-ui:8.0.1;端口映射:8082:8080。
完成后编排部署 Skywalking 服务,并提交 master 节点的用户名、密码和 IP 到答题框。
打分点:
1.docker-compose ps 命令查看容器为 UP 计 1.4 分
2.查看 Skywalking 首页返回正确计 1.6 分
【任务 2】基于 Docker 容器的 web 应用系统部署[10 分]
云梦公司开发了一套基于SpringBoot+MyBatis 微服务架构的ChinaSkillsMall 电商系统, 并实现全容器化部署,ChinaSkillsMall 电商应用系统架构如图 1 所示,系统说明如表 2 所示。
图 1ChinaSkillsMall 电商应用系统架构图
表 2 ChinaSkillsMall 电商应用系统说明
模块 说明
mall-monitor 监控中心
mall-gateway 微服务网关
mall-auth 认证中心
mall-admin 商城后台服务
mall-portal 商城前台服务
将 MariaDB 数据库组件、Redis 消息组件、RabbitMQ 消息组件、Nacos-Registry 注册中心服务组件和前端 Nginx 组件按照要求进行容器化。(所需要的软件包 mall-swarm.tar.gz 在 http 服务中)。
【适用平台】私有云
【题目 1】容器化部署 MariaDB[2.5 分]
在master节 点 上 编 写 /root/mall-swarm/Dockerfile-mariadb文件构建chinaskillmall-mariadb:v1.1 镜像,具体要求如下:
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)安装并初始化 mariadb,密码:root;
(4)设置数据库编码为 UTF-8;
(5)开放端口:3306;
(6)设置 mariadb 开机自启。
完成后构建镜像,并提交 master 节点的用户名、密码和 IP 到答题框。
打分点:
1.docker build 容器镜像,返回正确计 1 分
2.启动容器,查看容器内部数据库字符编码,有正确返回计 0.5 分
3.进入容器内部,有正确的数据库表计 1 分
【题目 2】容器化部署 Redis[2.5 分]
在 master 节点上编写 /root/mall-swarm/Dockerfile-redis 文件构建 chinaskillmall-redis:v1.1 镜像,具体要求如下:
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)安装 redis 服务;
(4)修改配置文件中的 bind 127.0.0.1 为 bind 0.0.0.0;
(5)设置 redis 免密,并关闭保护模式;
(6)开放端口:6379;
(7)设置服务开机自启。
完成后构建镜像,并提交 master 节点的用户名、密码和 IP 到答题框。
打分点:
1.docker build 构建镜像,有正确的返回计 0.4 分
2.启动容器,进入容器查看 redis 的 info 信息,有 connected_clients:1 计 0.5 分
3.进入容器查看配置文件,取消保护模式计 1.6 分
【题目 3】容器化部署 Nacos-Registry[2.5 分]
在master节点上编写 /root/mall-swarm/Dockerfile-nacos 文件构建chinaskillmall-nacos:v1.1 镜像,具体要求如下:
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)安装 jdk 工具和 nacos-server 工具;
(4)设置 nacos 服务开机自启。
完成后构建镜像,并提交 master 节点的用户名、密码和 IP 到答题框。
打分点:
1.docker build 构建镜像,有正确的返回计 0.6 分
2.启动容器,查看 nacos 首页有三方 css 开始,第三方 js 结束计 1.9 分
【题目 4】容器化部署前端服务[2.5分]
在 master 节点上安装 node 工具, 对 mall-admin-web 项目进行打包,然后编写/root/mall-swarm/Dockerfile-nginx 文件构建 chinaskillmall-nginx:v1.1 镜像,具体要求如下:
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)安装 nginx 服务;
(4)将 mall-admin-web 项目打包后的文件拷贝到/usr/share/nginx/html 目录下;
(5)设置 nginx 服务开机自启。
完成后构建镜像,并提交 master 节点的用户名、密码和 IP 到答题框。
打分点:
1.docker build 构建镜像,有正确的返回计 1 分
2.启动容器并进入容器,查看/usr/share/nginx/html/目录下是否存在 index.html,计 1 分
3.查看容器内 npm 的版本号是否正确计 0.5 分
【任务 3】基于 Kubernetes 构建持续集成[10 分]
该公司决定采用 GitLab +Jenkins 来构建 CICD 环境,以缩短新功能开发上线周期,及时满足客户的需求,实现 DevOps 的部分流程,来减轻部署运维的负担,实现可视化容器生命周期管理、应用发布和版本迭代更新,请完成 GitLab + Jenkins + Kubernetes 的 CICD 环境部署(所需要的软件包 CICD_Offline.tar 在 http 服务中)。CICD 应用系统架构如下:
【适用平台】私有云
【题目 1】安装 Jenkins 环境[2.5分]
在 master 节点上编写/root/jenkins/docker-compose.yaml 文件编排部署 Jenkins 服务,具体要求如下:
(1)容器名称:jenkins;
(2)端口映射:8080:8080;
(3)使用 root 身份生成容器;
(4)离线安装 Jenkins 插件;
(5)设置 Jenkins 用户:springcloud;密码:000000;
(6)在授权策略中配置"任何用户可以做任何事(没有任何限制)"。
使用 chinaskill 用户登录 Jenkins,完成后提交 master 节点的用户名、密码和 IP 到答题框。
打分点:
1.docker-compose ps 查看 Jenkins 容器是否正常启动计 0.4 分
2.查看 http://localhost:8080/pluginManager/installed 是否有正确返回计 1.2 分
3.进入 Jenkins 容器查看容器版本是否正确计 0.9 分
【题目 2】安装 Gitlab 环境[2.5 分]
在 master 节点上编写/root/gitlab/docker-compose.yaml 文件编排部署 Gitlab 服务,具体要求如下:
(1)容器名称:gitlab;
(2)端口映射:1022:22、81:80、443:443;
(3)容器重启策略:always;
(4)设置 root 用户及密码;
(5)使用 root 用户登录 Gitlab,密码:00000000;
(6)新建项目 Springcloud,将/opt/Springcloud 中的代码上传到 Springcloud 项目中。
完成后提交 master 节点的用户名、密码和 IP 到答题框。
打分点:
1.使用 docker-compose ps 命令查看 gitlab 是否正常启动计 0.9 分
2.使用 git clone http://master:81/root/springcloud.git /data/springcloud && ls /data/springcloud 命令,查看是否有正确的返回计 1.6 分
【题目 3】配置 Jenkins 连接 Gitlab[2.5 分]
配置 Jenkins 连接 Gitlab,具体要求如下:
(1)设置 Outbound requests;
(2)生成"Access Tokens"并命名为 jenkins;
(3)设置 Jenkins 取消对'/project' end-point 进行身份验证;
(4)测试 Jenkins 与 Gitlab 的连通性。
完成后提交 master 节点的用户名、密码和 IP 到答题框。
打分点:
1.查看 http://localhost:8080/credentials/界面是否有 GitLab API token 返回计 2.5 分
【题目 4】配置 Jenkins 连接 maven[2.5 分]
配置 Jenkins 连接 maven,具体要求如下:
(1)采用 docker in docker 的方式在 Jenkins 内安装 maven;
(2)在 Jenkins 中配置 maven 信息。
完成后提交 master 节点的用户名、密码和 IP 到答题框。
打分点:
1.进入 Jenkins 容器查看 mvn 的版本信息是否正确计 1.6 分
2.查看 curl -L http://localhost:8080/configureTools/ |grep local 是否有value="/usr/local/maven"返回计 0.9 分
【任务 4】Kubernetes 容器云平台部署与运维[10 分]
【适用平台】私有云
【题目 1】健康检查--ExecAction[2.5 分]
在 master 节点/root 目录下编写 yaml 文件 liveness_exec.yaml,具体要求如下:
(1)Pod 名称:liveness-exec;
(2)命名空间:default;
(3)镜像:busybox;容器名称:liveness;
(4)容器启动时运行命令"touch /tmp/healthy; sleep 60; rm -rf /tmp/healthy; sleep 600",此命令在容器启动时创建/tmp/healthy 文件,并于 60 秒之后将其删除;存活性探针运行"test -e /tmp/healthy"命令检查文件的存在性,若文件存在则返回状态码为 0,表示成功通过测试;
(5)启动后延时 5 秒开始运行检测;
(6)每隔 5 秒执行一次 liveness probe。
完成后使用该 yaml 文件创建 Pod,并提交 master 节点的用户名、密码和 IP 到答题框。
打分点:
1.使用 kubectl apply -f liveness_exec.yaml && kubectl get pods 命令查看,能查看到 liveness-exec 这个 pod 并且正常运行计 1.1 分
2.查看 liveness-exec 的详细信息,有正确的返回计 1.4 分
【题目 2】自定义资源管理[2.5 分]
在 Kubernetes 中一切都可视为资源,通过自定义资源我们可以向 Kubernetes API 中增加新资源类型。在 master 节点/root 目录下编写 yaml 文件 resource.yaml,具体要求如下:
(1)自定义资源名称:crontabs.stable.example.com;
(2)指定自定义资源作用范围为命名空间;
(3)指定每个版本都可以通过 served 标志来独立启用或禁止;
(4)指定其中有且只有一个版本必需被标记为存储版本 v1。
完成后使用该 yaml 文件创建自定义资源,并提交 master 节点的用户名、密码和 IP 到答题框。
打分点:
1.使用命令 kubectl get crd 查看,返回 crontabs.stable.example.com 计 0.5 分
- 使 用 命 令 kubectl describe crd crontabs.stable.example.com 查 看 , 有 正 确 的 返 回 Group: stable.example.com、Scope: Namespaced、v1 共计 2 分
【题目 3】NetworkPolicy 管理 [2.5 分]
在 master 节点/root 目录下编写 yaml 文件 network-policy-deny.yaml,具体要求如下:
(1)NetworkPolicy 名称:default-deny;
(2)命名空间:default;
(3)默认禁止所有入 Pod 流量。
完成后使用该 yaml 文件创建 NetworkPolicy,并提交 master 节点的用户名、密码和 IP到答题框。
打分点:
1.使用命令 kubectl apply -f network-policy-deny.yaml && kubectl get networkpolicy 查看,有 default-deny 返回计 1.2 分
2.使用命令 kubectl describe networkpolicy default-deny 查看,有 Selected pods are isolated for ingress connectivity 返回计 1.3 分
【题目 4】污点与容忍[2.5 分]
请将 master 节点设置为污点,策略设置为资源尽量不调度到污点节点中去。完成后提交 master 节点的用户名、密码和 IP 到答题框。
打分点:
1.使用命令 kubectl describe node master 查看,返回有 PreferNoSchedule 计 2.5 分
【赛程名称】云计算赛项第三场次-公有云
【任务 1】基础设施构建[10 分]
【适用平台】华为云
【题目 1】私有网络管理[1 分]
在公有云中完成虚拟私有云的创建,具体要求如下:
(1)在上海一区域进行创建操作;
(2)创建一个名为 intnetX 的虚拟私有云:IP 地址为 172.16.0.0/16;
(3)创建子网名称为 intnetX-server:IP 地址为 172.16.1.0/24;
(4)创建一个名为 net-data 的虚拟私有云:网段为 192.168.0.0/16;
(5)创建子网名称为 net-mysql:IP 地址为 192.168.1.0/24;
完成创建后,提交你当前的 AK(SecretId)、SK(SecretKey)和 intnetX 网络的 ID 到答题框。
得分点:
1.查看 vpc 名字为 intnetX 正确计 0.2 分
2.查看子网名为 intnetX-server 正确计 0.4 分
3.查看子网网段正确计 0.4 分
【题目 2】对等连接[2分]
创建对等连接 intnetX-net,配置 intnetX 虚拟私有云和 net-data 虚拟机私有云连通。
操作完成后,提交你当前的 AK(SecretId)、SK(SecretKey)和对等连接的 ID 到答题框。
得分点:
1.查看对等连接是否运行及网络配置是否正确计 2 分
【题目 3】云实例管理[1 分]
登录华为云平台,创建两台云实例,具体要求如下:
(1)计费模式:按需计费;
(2)地域:上海一;
(3)CPU 架构:鲲鹏计算;
(4)规格:kc1.xlarge.2;
(5)镜像:CentOS 7.5 64 位;
(6)系统盘:高 IO 50G 硬盘;
(7)虚拟网络:intnetX-server;
(8)实例名称:ChinaSkill-node-1、ChinaSkill-node-2;
(9)登录方式:使用密码登录,密码自定义。
创建完成后,提交你当前的 AK(SecretId)、SK(SecretKey)和 ChinaSkill-node-1 的实例 ID 到答题框。
得分点:
1.查看云实例使用的类型是否正确计 0.4 分
2.查看云实例使用的云硬盘是否正确计 0.6 分
【题目 4】云数据库管理[1 分]
创建一台云数据库,具体要求如下:
(1)计费模式:按需计费;
(2)地域:上海一;
(3)数据库版本:MySQL 5.7;
(4)实例类型:主备;
(5)实例规格:鲲鹏 2 核 8GB/40GB;
(6)虚拟私有云:net-mysql;
(7)字符集:UTF8;
(8)端口:3306;
(9)数据库密码:Root123456;
(10)数据库名称:chinaskill-mysql;
创建完成后,提交你当前的 AK(SecretId)、SK(SecretKey)和云数据库的实例 ID 到答题框。
得分点:
1.查看数据库类型创建是否正确,计 1 分
【题目 5】只读数据库[1 分]
给云数据库 chinaskill-mysql 创建只读数据库 chinaskill-read 实例。使用 2vCPU、4GB 内存规格。并给 chinaskill-mysql 申请读写分离地址。
完成后,提交你当前的 AK(SecretId)、SK(SecretKey)和只读数据库实例 ID 到答题框。
得分点:
1.查看数据库的类型,是否为只读,正确计 1 分
【题目 6】Redis 管理[1 分]
在上海一区创建一个 Redis 缓存实例,具体要求如下:
(1)版本号:5.0;
(2)实例类型:主备;
(3)副本数:2;
(4)实例规格:4G,x86 架构;
(5)子网:net-mysql;
(6)密码:Root123456;
创建完成后,提交你当前的 AK(SecretId)、SK(SecretKey)和实例 ID 到答题框。
得分点:
1.是否购买了正确配置的 redis,计 1 分
【题目 7】网络 ACL[1 分]
创建一个网络 ACL,具体要求如下:
(1)名称:intnetX-acl;
(2)允许策略:只放行源地址为 172.16.1.0/24 访问 3306 端口;
(3)允许策略:只放行源地址为 172.16.1.0/24 使用 ping 命令访问;
(4)关联子网:关联网络 ACL 至 net-mysql 子网中;
创建完成后,提交你当前的 AK(SecretId)、SK(SecretKey)和网络 ACL ID 到答题框。
得分点:
1.查看 ACL 是否被创建计 1 分
【题目 8】WordPress 上云[3 分]
自行购买一台鲲鹏云服务器,使用http服务中提供的软件包wordpress-5.0.2-zh_CN.tar.gz,部署LNMP+WordPress服务(LNMP服务自行安装)。使用云数据库chinaskill-mysql读写分离地址。
完成 WordPress 系统上云后,将 ChinaSkill-node-1 节点的用户名、密码和公网 IP 到答题框。
得分点:
1.查看 wordpress 首页是否有正确返回计 1 分
2.查看 php 是否被正确安装计 1 分
3.查看是否有 9000 端口开放计 1 分
【任务 2】系统管理与维护[10 分]
【适用平台】华为云
【题目 1】软件包管理[2分]
在 chinaskill-node-1 云服务器上,通过华为云镜像站,寻找 10.1.48 版本的 mariadb 数据库,并安装启动。
完成后提交 chinaskill-node-1 节点的用户名、密码和公网 IP 地址到答题框。
得分点:
1.查看数据库版本为 10.1.48 版本计 2 分
【题目 2】负载均衡器[2分]
创建一个负载均衡器 chinaskill-elb,将 ChinaSkill-node-1 和 ChinaSkill-node-2加入负载均衡的后端。设置一个可用的公网服务 IP,服务端口为 80。配置监听器,监听 80 端口。对浮动公共 IP 进行 Web 访问测试。完成后,提交你当前的 AK(SecretId)、SK(SecretKey) 和负载均衡器的 ID 到答题框。
得分点:
1.查看负载均衡器参数是否正确计 2 分
【题目 3】弹性伸缩管理[2 分]
新建一个启动配置,具体要求如下:
(1)启动配置名称:template-exam;
(2)计费模式:按量计费;
(3)地域:上海一;
(4)CPU 架构:鲲鹏计算;
(5)规格:kc1.xlarge.2;
(6)镜像:chinaskill-image;
(7)系统盘:通用SSD 50G 硬盘;
(8)登录方式:使用密码登录,密码自定义。
创建一个伸缩组,具体要求如下:
(1)名称:as-exam;
(2)最小伸缩数:1;起始实例数:1;最大伸缩数:5;
(3)启动配置:template-exam;
(4)使用负载均衡:chinaskill-elb;
(5)移出策略:移出最旧的实例。
为伸缩组 as-exam 新建告警触发策略,具体要求如下:
(1)如果实例的内存利用率在 5 分钟内的最大值小于 40%,且连续发生 3 次。则实例数减少 1 台。冷却 60 秒;
(2)如果实例的内存利用率在 5 分钟内的最大值大于 80%,且连续发生 3 次。则实例数增加 1 台。冷却 60 秒;
(3)如果实例的 CPU 利用率在 5 分钟内的最大值小于 40%,且连续发生 3 次。则实例数减少 1 台。冷却 60 秒;
(4)如果实例的 CPU 利用率在 5 分钟内的平均值大于等于 80%,且连续发生 3 次。则实例数增加 1 台。冷却 60 秒。
创建完成后提交你当前的 AK(SecretId)、SK(SecretKey)和伸缩组的实例 ID 到答题框。
得分点:
1.查看弹性伸缩参数是否为as.instance.1.5,as.policy.ALARM.ADD.1.60 ,as.policy.ALARM.REMOVE.1.6 , as.policy.ALARM.ADD.1.60 ,as.policy.ALARM.REMOVE.1.60 计 2 分
【题目 4】云容器引擎[2分]
创建一个鲲鹏架构集群,具体要求如下:
(1)集群名称:kcloud;
(2)集群版本:v1.15.11;
(3)地域:上海一;
(4)集群管理规模:50 节点;
(5)控制节点数:3;
(6)节点使用子网:DemoS-server;
(7)Pod 实例上限:64;
(8)容器网段:10.10.0.0/16。
节点配置信息要求如下:
(1)节点名称:kcloud-server;
(2)节点规格:kc1.xlarge.2
(3)节点:EulerOS 2.8
创建完成后提交你当前的 AK(SecretId)、SK(SecretKey)和集群的 ID 到答题框。
得分点:
1.查看云容器是否被正确创建 cce.0.kcloud.v1.15.11-r1.10.10.0.0/16 计 2 分
【题目 5】云硬盘存储卷[1分]
购买云硬盘存储卷,具体配置如下:
(1)名称为:ckloud-disk;
(2)集群:kcloud;
(3)容量:30G;
(4)类型:高 I/O;
完成后,创建完成后提交你当前的 AK(SecretId)、SK(SecretKey)和云硬盘的 ID 到答题框。
得分点:
1.查看云硬盘存储卷 evs.SAS.30 是否正确计 1 分
【题目 6】使用 kubectl 操作集群[1 分]
在 kcloud 集群中安装 kubectl 命令,使用 kubectl 命令管理 kcloud 集群。完成后提交连接 kcloud 集群节点的用户名、密码和公网 IP 地址到答题框。
得分点:
1,使用 kubectl 命令查询,看命令是否可用,可用计 1 分
【任务 3】Python 自动化运维[10 分]
【适用平台】公有云
【题目 1】python 环境准备[1 分]
通过华为云控制台,选择北京四区域,创建一台 x86 架构,按需计费的 2 核,4G,硬盘 50G 的云实例,实例名为 ChinaSkill,选择镜像为 CentOS 7.5 64bit(40GB),分配独立的公网 IP,带宽选择按使用流量计费 5M。登录此云服务器,安装 Python3,然后使用 Python 安装huaweicloud-sdk-python 库。(所需库文件 HUAWEICloud-Python.zip 在 http 下。
完成后提交服务器节点的用户名、密码和 IP 地址到答题框。(Python 对接公有云的题均使用 X86 架构)
得分点:
1.查看 pip3 版本为 huaweicloud-sdk-python 计 1 分
【题目 2】云服务器组管理[1 分]
在云服务器的/root/huawei 目录下编写 create_server_group.py 文件,并导入赛项提供的HwUser.py 文件获取授权。编写 Python 代码,参考官方相关的API调用文档,创建华为云的云服务器组,具体要求为
(1)云服务器组名称:chinaskills_server_group;
(2)云服务器组策略:反亲和性;
(3)如果云服务器组已经存在,代码中需要先删除;
创建成功后输出该云服务器组的信息。
完成后提交云服务器节点的用户名、密码和 IP 地址到答题框。
得分点:
1.执行 python3 /root/huawei/create_server_group.py,有正确的返回及实现功能计 1 分
【题目 3】安全组管理[2 分]
在云服务器的/root/huawei 目录下编写 create_security_group.py 文件,并导入赛项提供的HwUser.py 文件获取授权。编写 Python 代码,参考官方相关的API调用文档,创建华为云的安全组, 具体要求为
(1)安全组名称:chinaskills_security_group;
(2)如果安全组已经存在,代码中需要先删除;
(3)创建成功后输出此安全组的详细信息。
完成后提交云服务器节点的用户名、密码和 IP 地址到答题框。
得分点:
1.执行 python3 python3 /root/huawei/create_security_group.py,有正确的返回及实现功能计 2 分
【题目 4】安全组规则管理[2 分]
在云服务器的/root/huawei 目录下编写 create_security_group_rule.py 文件,并导入赛项提供的 HwUser.py 文件获取授权。基于上一题的安全组,编写 Python 代码,参考官方相关的API调用文档,创建华为云的安全组规则,具体要求为
(1)使用安全组名称获取其 ID(不允许直接填写安全组 ID);
(2)删除此安全组里所有规则(保证代码可以重复执行);
(3)放通出方向规则:所有协议端口;
(4)放通入方向规则:TCP 协议 22 端口;
(5)放通入方向规则:ICMP 协议所有端口;
(6)创建成功后输出此安全组的详细信息。
完成后提交云服务器节点的用户名、密码和 IP 地址到答题框。
得分点:
1.执行 python3 /root/huawei/create_security_group_rule.py,有正确的返回及实现功能计 2 分
【题目 5】虚拟私有云管理[2 分]
在云服务器的/root/huawei 目录下编写 create_vpc.py 文件, 并导入赛项提供的HwUser.py 文件获取授权。编写 Python 代码,参考官方相关的API调用文档,创建华为云的虚拟私有云,具体要求为
(1)虚拟私有云名称:chinaskills_vpc;
(2)如果虚拟私有云已经存在,代码中需要先删除;
(3)创建成功后输出此虚拟私有云的详细信息(状态要求为 OK)。
完成后提交云服务器节点的用户名、密码和 IP 地址到答题框。
得分点:
1.执行 python3 /root/huawei/create_vpc.py,有正确的返回及实现功能计 2 分
【题目 6】虚拟私有云子网管理[2 分]
在云服务器的/root/huawei 目录下编写 create_subnet.py 文件, 并导入赛项提供的HwUser.py 文件获取授权。编写 Python 代码,参考官方相关的API调用文档,创建华为云的虚拟私有云子网,具体要求为
(1)使用虚拟私有云名称获取其 ID(不允许直接填写虚拟私有云 ID);
(2)虚拟私有云子网名称:chinaskills_subnet;
(3)虚拟私有云子网网段:192.168.100.0/24;
(4)虚拟私有云子网网关:192.168.100.1;
(5)虚拟私有云子网可用区域:cn-north-4a;
(6)如果虚拟私有云子网已经存在,代码中需要先删除;
(7)创建成功后输出此虚拟私有云子网的详细信息(状态要求为 ACTIVE)。
完成后提交云服务器节点的用户名、密码和 IP 地址到答题框。
得分点:
1.执行 python3 /root/huawei/create_subnet.py,有正确的返回及实现功能计 2 分