“巴渝工匠杯”2022年重庆市职业院校技能大赛(高职组)云计算样题

"巴渝工匠杯"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.shopenrc.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.shiaas-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.shiaas-install-cinder-stroage.sh,填充脚本(只需填充中文注释下的内容),在 controller 和 stroage节点上安装 cinder 服务并完成配置。完成后提交控制节点的用户名、密码和 IP 地址到答题框。

打分点:

1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分

【题目 9】Swift安装[1 分]

请根据提示,修改stroage的参数配置,增加3块硬盘。使用提供的脚本框架iaas-install-swift-controller.shiaas-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 分

  1. 使 用 命 令 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 分

相关推荐
jasmine s9 分钟前
Pandas
开发语言·python
biomooc29 分钟前
R 语言 | 绘图的文字格式(绘制上标、下标、斜体、文字标注等)
开发语言·r语言
骇客野人32 分钟前
【JAVA】JAVA接口公共返回体ResponseData封装
java·开发语言
black^sugar33 分钟前
纯前端实现更新检测
开发语言·前端·javascript
404NooFound38 分钟前
Python轻量级NoSQL数据库TinyDB
开发语言·python·nosql
用余生去守护2 小时前
python报错系列(16)--pyinstaller ????????
开发语言·python
数据小爬虫@2 小时前
利用Python爬虫快速获取商品历史价格信息
开发语言·爬虫·python
向宇it2 小时前
【从零开始入门unity游戏开发之——C#篇25】C#面向对象动态多态——virtual、override 和 base 关键字、抽象类和抽象方法
java·开发语言·unity·c#·游戏引擎
莫名其妙小饼干2 小时前
网上球鞋竞拍系统|Java|SSM|VUE| 前后端分离
java·开发语言·maven·mssql
十年一梦实验室2 小时前
【C++】sophus : sim_details.hpp 实现了矩阵函数 W、其导数,以及其逆 (十七)
开发语言·c++·线性代数·矩阵