2022 年全国职业院校技能大赛高职组云计算赛项试卷(私有云)

#需要资源(软件包及镜像)或有问题的,可私聊博主!!!

#需要资源(软件包及镜像)或有问题的,可私聊博主!!!

#需要资源(软件包及镜像)或有问题的,可私聊博主!!!

【赛程名称】云计算赛项第一场-私有云

    某企业拟使用OpenStack 搭建一个企业云平台,以实现资源池化弹性管理、企业应用集中管理、统一安全认证和授权等管理。

    系统架构如图 1 所示,IP 地址规划如表 1 所示。

图 1 系统架构图

表 1    IP 地址规划

设备名称

主机名

接口

IP 地址

说明

云服务器1

Controller

eth0

172.129.x.0/24

Vlan x

eth1

自定义

自行创建

云服务器2

Compute

eth0

172.129.x.0/24

Vlan x

eth1

自定义

自行创建

云服务器3

...

云服务器 n

自定义

eth0

172.129.x.0/24

用于实操题

PC-1

本地连接

172.24.16.0/24

PC 使用

          说明:

  1. 竞赛使用集群模式进行,比赛时给每个参赛队提供独立的租户与用户,各用户的资源配额相同,选手通过用户名与密码登录竞赛用私有云平台,创建云主机进行相应答题;
  2. 表中的 x 为工位号;在进行 OpenStack 搭建时的第二块网卡地址根据题意自行创建;
  3. 根据图表给出的信息,检查硬件连线及网络设备配置,确保网络连接正常;
  4. 考试所需要的账号资源、竞赛资源包与附件均会在考位信息表与设备确认单中给出;
  5. 竞赛过程中,为确保服务器的安全,请自行修改服务器密码;在考试系统提交信息时,请确认自己的 IP 地址,用户名和密码。

【任务 1】私有云服务搭建[10]

【适用平台】私有云

【题目 1】基础环境配置[0.5 分]

使用提供的用户名密码,登录提供的 OpenStack 私有云平台,在当前租户下,使用 CentOS7.9 镜像,创建两台云主机,云主机类型使用 4vCPU/12G/100G_50G 类型。当前租户下默认存在一张网卡,自行创建第二张网卡并连接至 controller 和 compute 节点(第二张网卡的网段为 10.10.X.0/24,X 为工位号,不需要创建路由)。自行检查安全组策略,以确保网络正常通信与 ssh 连接,然后按以下要求配置服务器:

(1) 设置控制节点主机名为 controller,设置计算节点主机名为 compute;

(2) 修改hosts 文件将 IP 地址映射为主机名;

完成后提交控制节点的用户名、密码和 IP 地址到答题框。

  1. 查看控制节点名字为 controller 正确计 0.2 分

  2. 查看 hosts 文件中有正确的主机名和 IP 映射计 0.2 分

  3. 控制节点正确使用两块网卡计 0.1 分

【题目 2】Yum 源配置[0.5 分]

使用提供的 http 服务地址,在 http 服务下,存在 centos7.9 和 iaas 的网络 yum 源,使用该 http 源作为安装 iaas 平台的网络源。分别设置 controller 节点和 compute 节点的 yum 源文件 http.repo。完成后提交控制节点的用户名、密码和 IP 地址到答题框。

1.查看/etc/yum.repos.d/http.repo 文件,有正确的 baseurl 路径,计 0.5 分

【题目 3】配置无秘钥 ssh[0.5 分]

配置 controller 节点可以无秘钥访问 compute 节点,配置完成后,尝试 ssh 连接 compute节点的 hostname 进行测试。完成后提交 controller 节点的用户名、密码和 IP 地址到答题框。

1.查看控制节点允许计算节点无秘钥登录计 0.5 分

【题目 4】基础安装[0.5 分]

在控制节点和计算节点上分别安装 openstack-iaas 软件包,根据表 2 配置两个节点脚本文件中的基本变量(配置脚本文件为/etc/openstack/openrc.sh)。

表 2 云平台配置信息

服务名称变量参数/密码
Mysqlroot000000
Keystone000000
Glance000000
Nova000000
Neutron000000
Heat000000
Zun000000
KeystoneDOMAIN_NAMEdemo
Admin000000
Rabbit000000
Glance000000
Nova000000
Neutron000000
Heat000000
Zun000000
NeutronMetadata000000
External Networketh1(以实际为准)

完成后提交控制节点的用户名、密码和 IP 地址到答题框。

1.检查环境变量文件配置正确计 0.5 分

【题目 5】数据库安装与调优[0.5 分]

在 controller 节点上使用 iaas-install-mysql.sh 脚本安装 Mariadb、Memcached、RabbitMQ等服务。安装服务完毕后,修改/etc/my.cnf 文件,完成下列要求:

  1. 设置数据库支持大小写;

  2. 设置数据库缓存 innodb 表的索引,数据,插入数据时的缓冲为 4G;

  3. 设置数据库的 log buffer 为 64MB;

  4. 设置数据库的 redo log 大小为 256MB;

  1. 设置数据库的 redo log 文件组为 2。

完成后提交控制节点的用户名、密码和 IP 地址到答题框。

1.检查数据库配置正确计 0.5 分

【题目 6】Keystone 服务安装与使用[0.5 分]

在 controller 节点上使用 iaas-install-keystone.sh 脚本安装 Keystone 服务。安装完成后,使用相关命令,创建用户 chinaskill,密码为 000000。完成后提交控制节点的用户名、密码和 IP 地址到答题框。

  1. 检查 keystone 服务安装正确计 0.2 分

  2. 检查chinaskill 用户创建正确计 0.3 分

【题目 7】Glance 安装与使用[0.5 分]

在 controller 节点上使用 iaas-install-glance.sh 脚本安装 glance 服务。使用命令将提供的 cirros-0.3.4-x86_64-disk.img 镜像(该镜像在 HTTP 服务中,可自行下载)上传至平台,命名为 cirros,并设置最小启动需要的硬盘为 10G,最小启动需要的内存为 1G。完成后提交控制节点的用户名、密码和 IP 地址到答题框。

  1. 检查glance 服务安装正确计 0.1 分

  2. 检查cirros 镜像最小启动硬盘与内存配置正确计 0.4 分

【题目 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 地址到答题框。

1.检查nova 服务解决超时问题配置正确计 0.5 分

【题目 9】Neutron 安装[0.5 分]

使用提供的脚本 iaas-install-neutron-controller.sh 和 iaas-install-neutron-compute.sh,在 controller 和 compute 节点上安装 neutron 服务。完成后提交控制节点的用户名、密码和 IP地址到答题框。

  1. 检查neutron 服务安装正确计 0.2 分

  2. 检查neutron 服务的 linuxbridge 网桥服务启动正确计 0.3 分

【题目 10】Doshboard 安装[0.5 分]

在controller 节点上使用iaas-install-dashboad.sh 脚本安装dashboad 服务。安装完成后,将 Dashboard 中的 Djingo 数据修改为存储在文件中(此种修改解决了 ALL-in-one 快照在其他云平台 Dashboard 不能访问的问题)。完成后提交控制节点的用户名、密码和 IP 地址到答题框。

  1. 检查Dashboard 服务安装正确计 0.2 分

  2. 检查Dashboard 服务中Djingo 数据修改为存储在文件中配置正确计 0.3 分

【题目 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 地址到答题框。

  1. 检查 swift 服务安装正确计 0.3 分

  2. 分段上传cirros 镜像正确计 0.2 分

【题目 12】Cinder 创建硬盘[0.5 分]

在 控 制 节 点 和 计 算 节 点 分 别 使 用 iaas-install-cinder-controller.sh 、 iaas-install-cinder-compute.sh 脚本安装Cinder 服务,请在计算节点,对块存储进行扩容操作,即在计算节点再分出一个 5G 的分区,加入到 cinder 块存储的后端存储中去。完成后提交计算节点的用户名、密码和 IP 地址到答题框。

1.检查cinder 后端存储扩容成功计 0.5 分

【题目 13】Manila 服务安装与使用[0.5 分]

在 控 制 和 计 算 节 点 上 分 别 使 用 iaas-install-manila-controller.sh 和 iaas-install-manila-compute.sh 脚本安装 manila 服务。安装服务后创建 default_share_type 共享类型(不使用驱动程序支持),接着创建一个大小为 2G 的共享存储名为 share01 并开放 share01 目录对 OpenStack 管理网段使用权限。最后提交控制节点的用户名、密码和 IP 地址到答题框。

1.检查 share01 共享存储正确创建并赋予权限计0.5 分

【题目 14】Barbican 服务安装与使用[0.5 分]

使用 iaas-install-barbican.sh 脚本安装 barbican 服务,安装服务完毕后,使用 openstack命令创建一个名为 secret01 的密钥,创建完成后提交控制节点的用户名、密码和 IP 地址到答题框。

1.检查 secret01 密钥创建正确计 0.5 分

【题目 15】Cloudkitty 服务安装与使用[1 分]

使用 iaas-install-cloudkitty.sh 脚本安装cloudkitty 服务,安装完毕后,启用 hashmap 评级模块,接着创建 volume_thresholds 组,创建服务匹配规则 volume.size,并设置每 GB 的价格为 0.01。接下来对应大量数据设置应用折扣,在组 volume_thresholds 中创建阈值,设置若超过 50GB 的阈值,应用 2%的折扣(0.98)。设置完成后提交控制节点的用户名、密码和 IP 地址到答题框。

  1. 检查 hashmap 评级模块启用成功计 0.2 分

  2. 检查服务匹配规则volume.size 创建成功 0.8 分

【题目 16】OpenStack 平台内存优化[0.5 分]

搭建完 OpenStack 平台后,关闭系统的内存共享,打开透明大页。完成后提交控制节点的用户名、密码和 IP 地址到答题框。

1.检查系统内存优化成功计 0.5 分

【题目 17】修改文件句柄数[0.5 分]

Linux 服务器大并发时,往往需要预先调优 Linux 参数。默认情况下,Linux 最大文件句柄数为 1024 个。当你的服务器在大并发达到极限时,就会报出“too many open files”。创建一台云主机,修改相关配置,将控制节点的最大文件句柄数永久修改为 65535。配置完成后提交 controller 点的用户名、密码和 IP 地址到答题框。

1.检查配置 linux 系统句柄数为 65535 成功计 0.5 分

【题目 18】Linux 系统调优-防止SYN 攻击[1 分]

修改 controller 节点的相关配置文件,开启 SYN cookie,防止 SYN 洪水攻击。完成后提交 controller 节点的用户名、密码和 IP 地址到答题框。

1.检查开启SYN cookie 配置计 1 分

【任务 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 地址到答题框。

1.检查glance-cirros 镜像权限开放正确计 0.5 分

【题目 2】OpenStack 消息队列调优[0.5 分]

OpenStack 各服务内部通信都是通过 RPC 来交互,各 agent 都需要去连接 RabbitMQ;随着各服务 agent 增多,MQ 的连接数会随之增多,最终可能会到达上限,成为瓶颈。使用自行搭建的OpenStack 私有云平台,分别通过用户级别、系统级别、配置文件来设置RabbitMQ服务的最大连接数为 10240,配置完成后提交修改节点的用户名、密码和 IP 地址到答题框。

1.检查 rabbitmq 服务最大连接数正确计 0.5 分

【题目 3】OpenStack Glance 镜像压缩[0.5 分]

使用自行搭建的 OpenStack 平台。在 HTTP 服务中存在一个镜像为CentOS7.5-compress.qcow2 的镜像,请使用 qemu 相关命令,对该镜像进行压缩,压缩后的镜像命名为chinaskill-js-compress.qcow2 并存放在/root 目录下。完成后提交 controller 点的用户名、密码和 IP 地址到答题框。

1.检查镜像压缩正确计 0.5 分

【题目 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 地址到答题框。

1.检查修改glance 后端存储为 cinder 正确计 0.5 分

【题目 5】OpenStack Heat 运维:创建容器[0.5 分]

在自行搭建的 OpenStack 私 有 云 平 台 上 , 在 /root 目录下编写 Heat 模板 create_container.yaml,要求执行 yaml 文件可以创建名为 heat-swift 的容器。完成后提交控制节点的用户名、密码和 IP 地址到答题框。(在提交信息前请准备好 yaml 模板执行的环境)

1.执行heat 模板文件成功创建容器计 0.5 分

【题目 6】OpenStack Nova 清除缓存[0.5 分]

在 OpenStack 平台的一台计算节点创建虚拟机,若是第一次在该节点创建次虚拟机,会先将镜像文件复制到该计算节点目录/var/lib/nova/instances/_base。长期下来,该目录会占用比较大的磁盘空间而要清理。可以通过修改 nova 的配置文件来自动清理该缓存目录,即在该节点没有使用某镜像启动的云主机,那么这个镜像在过一定的时间后会被自动删除。配置完成后提交改动节点的用户名、密码和 IP 地址到答题框。

1.检查nova 配置自动清理缓存文件正确计 0.5 分

【题目 7】Redis 一主二从三哨兵模式[1 分]

使用提供的 OpenStack 私有云平台,申请三台 CentOS7.9 系统的云主机,使用提供的 http 源,在三个节点自行安装 Redis 服务并启动,配置 Redis 的访问需要密码,密码设置为 123456。然后将这三个 Redis 节点配置为 Redis 的一主二从三哨兵架构,即一个 Redis 主节点,两个从节点,三个节点均为哨兵节点。配置完成后提交Redis 主节点的用户名、密码和 IP 地址到答题框。

  1. 检查 redis 主从集群部署正确计 0.5 分

  2. 检查 redis 集群部署为哨兵节点正确计 0.5 分

【题目 8】Redis 服务调优-AOF[1 分]

使用上一题安装的Redis 服务。在 Redis 中,AOF 配置为以三种不同的方式在磁盘上执行 write 或者 fsync。假设当前 Redis 压力过大,请配置 Redis 不执行 fsync。除此之外,避免 AOF 文件过大,Redis 会进行 AOF 重写,生成缩小的 AOF 文件。请修改配置,让 AOF 重写时,不进行fsync 操作。配置完成后提交 Redis 节点的用户名、密码和 IP 地址到答题框。

  1. 检查配置 redis 不执行 fsync 正确计 0.5 分、

  2. 检查配置 redis 进行 AOF 重写不执行 fsync 正确计 0.5 分

【题目 9】应用部署:堡垒机部署[0.5 分]

使用提供的 OpenStack 平台申请一台 CentOS7.9 的云主机,使用提供的软件包安装 JumpServer 堡垒机服务,并配置使用该堡垒机对接自己安装的 controller 和 compute 节点。完成后提交JumpServer 节点的用户名、密码和 IP 地址到答题框。

1.检查堡垒机部署正确计 0.5 分

【题目 10】skywalking 服务部署与应用[1 分]

使用提供的 OpenStack 私有云平台,申请一台 centos7.9 系统的云主机,使用提供的软 件包安装 Elasticsearch 服务和 skywalking 服务,将 skywalking 的 UI 访问端口修改为 8888。接下来再申请一台CentOS7.9 的云主机,用于搭建gpmall 商城应用,并配置SkyWalking Agent,将 gpmall 的 jar 包放置探针并启动。安装与配置完成后提交 skywalking 节点的用户名、密码和 IP 地址到答题框。

1.检查 skywalking 服务部署正确计 1 分

【题目 11】Linux 内核优化[1 分]

在使用 Linux 服务器的时候,TCP 协议规定,对于已经建立的连接,网络双方要进行四次挥手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。因为服务器程序要同时管理大量连接,所以很有必要保证无用的连接完全断开,否则大量僵死的连接会浪费许多服务器资源。创建一台 CentOS7.9 云主机,修改相应的配置文件,分别开启 SYN Cookies;允许将 TIME-WAIT sockets 重新用于新的 TCP连接;开启TCP 连接中 TIME-WAIT sockets 的快速回收;修改系統默认的 TIMEOUT 时间为 30。完成后提交修改节点的用户名、密码和 IP 地址到答题框。

1.检查内核优化正确计 1 分

【题目 12】排错:Glance 服务排错[1 分]

使用赛项提供的 chinaskill-error1 镜像启动云主机,flavor 使用 4vcpu/12G 内存/100G 硬盘。启动后存在错误的私有云平台,错误现象为查看不到 image 列表,试根据错误信息排查云平台错误,使云平台可以查询到 image 信息。完成后提交云主机节点的用户名、密码和 IP地址到答题框。

1.检查错误镜像glance 服务启动正确计 1 分

【题目 13】排错:数据库排错[1.5 分]

使用赛项提供的排错镜像 chinaskill-error2 创建一台云主机(云主机的登录用户名为 root,密码为 000000),该云主机中存在错误的数据库服务,错误现象为数据库服务无法启动。 请将数据库服务修复并启动,将数据库的密码修改为 chinaskill123。修复完成后提交该云主机的用户名、密码和 IP 地址到答题框。

1.检查错误镜像数据库服务启动正确计 1.5 分

【任务 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 运行环境,以便考试系统访问)

  1. 执行yaml 文件正确计 0.5 分

  2. 检查数据库集群部署正确计 1 分

  3. 检查数据库集群数量为 3 正确计 0.5 分

【题目 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 脚本,准备好环境,以便考试系统访问)

  1. 执行yaml 文件正确计 0.5 分 2. 检查 ELK 服务部署正确计 1.5 分

【题目 3】Python 运维开发:基于OpenStack Restful API 实现镜像上传[1 分]

使用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 地址,用户名和密码提交。

  1. 执行api_image_manager.py 脚本,成功创建镜像,计 0.5 分

  2. 检查镜像状态正确,计 0.5 分

【题目 4】Python 运维开发:基于 Openstack Python SDK 实现云主机创建[1 分]

使 用 已 建 好 的 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 地址,用户名和密码提交。

  1. 执行 sdk_server_manager.py 脚本,成功创建云主机,计 0.5 分

  2. 检查创建的云主机状态正确,计 0.5 分

【题目 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

  1. 执行 flavor_manager.py 脚本,指定 create 和配置参数,成功创建 1 个云主机类型,计 0.5分;

  1. 执行 flavor_manager.py 脚本,指定 getall 参数,成功查询所有云主机类型,计 0.5 分;

  2. 执行 flavor_manager.py 脚本,指定 get 和配置参数,成功查询具体名称的云主机类型,计0.5 分;

  3. 执行 flavor_manager.py 脚本,指定 delete 和配置参数,成功删除指定 ID 云主机类型,计0.5 分。

【题目 6】Python 运维开发:用户管理的命令行工具开发[2 分]

使用已建好的OpenStack Python 运维开发环境,在/root 目录下创建 user_manager.py 脚本,完成用户管理功能开发,user_manager.py 程序支持命令行带参数执行。

提示说明:Python 标准库 argparse 模块,可以提供命令行参数的解析。

(1) 程序支持根据命令行参数,创建 1 个用户。位置参数“create”,表示创建;

参数“-i 或--input”,格式为 json 格式文本用户数据。查询结果,以 json 格式输出到控制台。

参考执行实例如下:

python3 user_manager.py create --input '{ "name": "user01", "password": "000000", "description": "description" } '

(2) 支持查询给定具体名称的用户查询。

位置参数“get”,表示查询 1 个用户;

参数“-n 或 --name”支持指定名称查询,类型为 string。

参数“-o 或 output”支持查询该用户信息输出到文件,格式为json 格式。参考执行实例如下:

python3 user_manager.py get --name user01-o user.json

(3) 程序支持查询目前 admin 账号下所有的用户。位置参数“getall”,表示查询所有用户;

参数“-o 或--output”支持输出到文件,格式为 yaml 格式。参考执行实例如下:

python3 user_manager.py getall -o openstack_all_user.yaml

(4) 支持删除指定的名称的用户。

位置参数“delete”,表示删除一个用户;返回 response,通过控制台输出。参数“-n 或--name”支持指定名称查询,类型为 string。

参考执行实例如下:

python3 user_manager.py delete -name user01

  1. 执行user_manager.py 脚本,指定 create 和配置参数,成功创建 1 个用户,计 0.5 分;

  2. 执行user_manager.py 脚本,指定 get 和配置参数,成功查询具体名称的用户,计 0.5 分;

  3. 执行user_manager.py 脚本,指定 getall 和配置参数,成功查询 admin 账号下的所有用户,计 0.5 分;

  4. 执行user_manager.py 脚本,指定 delete 和配置参数,成功删除指定名称的用户,计 0.5 分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/321072.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录刷题随记30-贪心4

代码随想录刷题随记30-贪心4 860.柠檬水找零 leetcode链接 比较显然 class Solution {public boolean lemonadeChange(int[] bills) {int []accountnew int[3];for(int cur:bills){if(cur5)account[0];else if(cur10){account[0]--;if(account[0]<0)return false;account…

ICode国际青少年编程竞赛- Python-1级训练场-路线规划

ICode国际青少年编程竞赛- Python-1级训练场-路线规划 1、 Dev.step(3) Dev.turnLeft() Dev.step(4)2、 Dev.step(3) Dev.turnLeft() Dev.step(3) Dev.step(-6)3、 Dev.step(-2) Dev.step(4) Dev.turnLeft() Dev.step(3)4、 Dev.step(2) Spaceship.step(2) Dev.step(3)5、…

【论文阅读】Fuzz4All: Universal Fuzzing with Large Language Models

文章目录 摘要一、介绍二、Fuzz4All的方法2.1、自动提示2.1.1、自动提示算法2.1.2、自动提示的例子2.1.3、与现有自动提示技术的比较 2.2、fuzzing循环2.2.1、模糊循环算法2.2.2、Oracle 三、实验设计3.1、实现3.2、被测系统和baseline3.3、实验设置以及评估指标 四、结果分析4…

iPhone查看本机号码只需要这3招,不再为号码忘记犯愁!

在日常生活中&#xff0c;我们经常需要使用手机号码进行各种通讯活动&#xff0c;但有时候会忘记自己的手机号码&#xff0c;让人感到非常尴尬。不过&#xff0c;如果您是iPhone用户&#xff0c;那么您可以放心了&#xff01;因为在iphone查看本机号码只需要简单的几个步骤&…

linux系统 虚拟机的安装详细步骤

window&#xff1a; (1) 个人&#xff1a;win7 win10 win11 winxp (2)服务器&#xff1a;windows server2003 2008 2013 linux&#xff1a; (1)centos7 5 6 8 (2)redhat (3)ubuntu (4)kali 什么是linux: 主要是基于命令来完成各种操作&#xff0c;类似于DO…

使用STM32F103C8T6与蓝牙模块HC-05连接实现手机蓝牙控制LED灯

导言: 在现代智能家居系统中,远程控制设备变得越来越普遍和重要。本文将介绍如何利用STM32F103C8T6单片机和蓝牙模块HC-05实现远程控制LED灯的功能。通过这个简单的项目,可以学会如何将嵌入式系统与蓝牙通信技术相结合,实现远程控制的应用。 目录 导言: 准备工作: 硬…

Spring Data JPA的一对一、LazyInitializationException异常、一对多、多对多操作

Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 4、Spring Data JPA的一对一、LazyInitializationException异常、一对多、多对多操作 前言 通过前三篇Sprin…

GNU Radio创建FFT、IFFT C++ OOT块

文章目录 前言一、GNU Radio官方FFT弊端二、创建自定义的 C OOT 块1、创建 OOT 模块2、创建 OOT 块3、修改 C 和 CMAKE 文件4、编译及安装 OOT 块 三、测试1、grc 图2、运行结果①、时域波形对比②、频谱图对比 四、资源自取 前言 GNU Radio 自带的 FFT 模块使用起来不是很方便…

RT-DETR-20240507周更说明|更新Inner-IoU、Focal-IoU、Focaler-IoU等数十种IoU计算方式

RT-DETR改进专栏|包含主干、模块、注意力、损失函数等改进 专栏介绍 本专栏包含模块、卷积、检测头、损失等深度学习前沿改进,目前已有改进点70&#xff01;每周更新。 20240507更新说明&#xff1a; ⭐⭐ 更新CIoU、DIoU、MDPIoU、GIoU、EIoU、SIoU、ShapeIou、PowerfulIoU、…

04-28 周日 FastAPI Post请求同时传递文件和普通参数

04-28 周日 FastAPI Post请求同时传递文件和普通参数 时间版本修改人描述04-28 周日V0.1宋全恒新建文档2024年5月6日14:20:05V1.0宋全恒完成文档的传递 简介 由于在重构FastBuild的时候&#xff0c;为了支持TLS是否启用&#xff0c;在接口中需要同时传递文件参数和其他参数&am…

【Vue3】Ref与Reactive

3.1【ref 创建&#xff1a;基本类型的响应式数据】 作用&#xff1a;定义响应式变量。语法&#xff1a;let xxx ref(初始值)。返回值&#xff1a;一个RefImpl的实例对象&#xff0c;简称ref对象或ref&#xff0c;ref对象的value属性是响应式的。注意点&#xff1a; JS中操作数…

docker 指定根目录 迁移根目录

docker 指定根目录 迁移根目录 1、问题描述2、问题分析3、解决方法3.1、启动docker程序前就手动指定docker根目录为一个大的分区(支持动态扩容)&#xff0c;事前就根本上解决根目录空间不够问题3.1.0、方法思路3.1.1、docker官网安装文档3.1.2、下载docker安装包3.1.3、安装doc…

网络安全之交换基础

交换属于二层技术。路由器&#xff08;router&#xff09;是三层设备&#xff0c;可以基于IP地址转发&#xff0c;但需要路由表来记录。 交换机&#xff08;switch&#xff09;是二层设备&#xff0c;网桥&#xff08;switch&#xff09;也是二层设备&#xff0c;这两个都是基…

zabbix监控方式(zabbix-trapper)

中文&#xff1a;zabbix采集器&#xff0c;即zabbix sender 。 Zabbix-Trapper 监控方式可以一次批量发送数据给Zabbix Server&#xff0c;与主动模式不同&#xff0c;Zabbix-Trapper 可以让用户控制数据的发送&#xff0c;而不用Zabbix-Agent进程控制&#xff0c;这意味着可以…

【算法小白周赛1A】分析 - 题解与代码

题目链接&#xff1a;https://www.starrycoding.com/problem/155 题目描述 小可可最近在学数学运算&#xff01;他希望考考你&#xff0c;给你两个整数 A , B A,B A,B&#xff0c;询问 A B A\times B AB 是否是偶数。 注意&#xff0c;可能存在前导 0 0 0&#xff0c;比如…

与Apolo共创生态: Apollo X企业自动驾驶解决方案的亮点

文章目录 前言技术革新的里程碑Apollo X企业自动驾驶解决方案的亮点Application X企业预制套件的多场景覆盖Studio X企业协同工具链的全周期支持第一阶段&#xff1a;上机系统构建第二阶段&#xff1a;POC搭建第三阶段&#xff1a;规模运营小结 共创生态&#xff0c;共享未来共…

Sermant在异地多活场景下的实践

Sermant社区在1.3.0和1.4.0版本相继推出了消息队列禁止消费插件和数据库禁写插件&#xff0c;分别用于解决异地多活场景下的故障切流和保护数据一致性问题。本文将对Sermant在异地多活场景下的实践进行剖析。 一、异地多活 1.1 什么是异地多活 对于一个软件系统&#xff0c;…

互联网十万个为什么之什么是云计算

云计算是一种通过互联网提供计算资源和服务的技术。它允许用户随时随地访问和使用云平台上的数据、软件和硬件资源。在数字化时代&#xff0c;互联网已经成为基础设施。云计算使得数据中心能够像一台计算机一样去工作。通过互联网将算力以按需使用、按量付费的形式提供给用户&a…

双热点的王炸组合!损失函数+Attention,精度与速度上实现SOTA!

损失函数注意力机制在深度学习领域是一个热门研究方向&#xff0c;它可以提高模型的性能和泛化能力&#xff0c;帮助我们构建更加精确且高效的模型。 具体来说&#xff1a; 通过结合注意力机制的聚焦能力和损失函数的优化指导&#xff0c;模型能够更精确地捕捉数据中的关键信息…