Glance 安装与配置

实验概述

实验介绍

通过在鲲鹏平台上完成 Glance 安装、配置工作,了解 Glance images 的常规运维操作。

实验环境

服务器说明

产品操作系统数量
鲲鹏服务器openEuler 22.03 LTS for ARM1

虚拟机说明

产品版本数量
虚拟机openEuler 22.03 LTS for ARM1

软件说明

请确保虚拟机已正确安装好 OpenStack Keystone 服务。

实验目的

  • 在鲲鹏服务器上完成 Glance 的安装
  • 在鲲鹏服务器上完成 Glance 的基础配置
  • 在鲲鹏服务器上完成 Glance 的常规运维操作

任务一:实验环境搭建

步骤 1 环境配置

配置 openEuler 22.03 LTS 官方 YUM 源,需要启用 EPOL 软件仓以支持 OpenStack。

[root@controller ~]# yum -y update
[root@controller ~]# yum -y install openstack-release-wallaby
[root@controller ~]# yum clean all && yum makecache

注意:如果你的环境的 YUM 源没有启用 EPOL,需要同时配置 EPOL。

[root@controller ~]# vim /etc/yum.repos.d/openEuler.repo

在文件中添加以下内容:

[EPOL]
name=EPOL
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/EPOL/main/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler

关闭防火墙。

查看防火墙状态,若为 active,则需关闭防火墙。

[root@controller ~]# systemctl status firewalld.service

临时关闭防火墙,若系统重启,则防火墙会恢复开启状态。关闭后查看状态发现防火墙状态为 dead。

[root@controller ~]# systemctl stop firewalld.service

若需永久关闭防火墙,则执行如下命令:

[root@controller ~]# systemctl disable firewalld.service

关闭 SELinux。

临时关闭 SELinux,使用此命令,系统重启后 SELinux 重新开启。

我们可以使用 getenforce 查看 SELinux 的状态:

  • Permissive 状态为若违反安全策略,则记录日志;
  • Enforcing 状态为默认模式,禁用违反策略的操作;
  • disable 状态为禁用 SELinux。
[root@controller ~]# setenforce 0

永久关闭 SELinux,编辑 /etc/selinux/config 文件,修改为 SELINUX=disabled。

[root@controller ~]# vim /etc/selinux/config

任务二:Glance 安装与配置

步骤 1 创建数据库、服务凭证和 API

创建数据库:

[root@controller ~]# mysql -u root -p

MariaDB [(none)]> CREATE DATABASE glance;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'Huawei@123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'Huawei@123';
MariaDB [(none)]> exit

注意:glance 数据库密码设置为 Huawei@123。

创建服务凭证:

[root@controller ~]# source ~/.admin-openrc

[root@controller ~]# openstack user create --domain default --password 'Huawei@123' glance
[root@controller ~]# openstack project create service
[root@controller ~]# openstack role add --project service --user glance admin
[root@controller ~]# openstack service create --name glance --description "OpenStack Image" image

说明:创建 glance 用户时,使用 --password 'Huawei@123' 参数实现非交互式设置密码,无需手动输入两次密码。

创建镜像服务 API 端点:

[root@controller ~]# openstack endpoint create --region RegionOne image public http://controller:9292
[root@controller ~]# openstack endpoint create --region RegionOne image internal http://controller:9292
[root@controller ~]# openstack endpoint create --region RegionOne image admin http://controller:9292

注意:创建镜像服务 API 端点时,仅需执行一次。重复执行会生成多个 Endpoint,导致服务对接冲突。

步骤 2 安装 Glance

安装软件包:

[root@controller ~]# yum -y install openstack-glance

步骤 3 配置 Glance

安装好 Glance 组件后,采用 cat 重定向的方式修改配置文件。

先备份原配置文件:

[root@controller ~]# cp /etc/glance/glance-api.conf /etc/glance/glance-api.conf.bak

再使用 cat 重定向覆盖写入完整配置:

[root@controller ~]# cat > /etc/glance/glance-api.conf <<'EOF'
[database]
connection = mysql+pymysql://glance:Huawei@123@controller/glance

[keystone_authtoken]
www_authenticate_uri  = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = Huawei@123

[paste_deploy]
flavor = keystone

[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
EOF

解释:

  • [database] 部分,配置数据库入口;
  • [keystone_authtoken]、[paste_deploy] 部分,配置身份认证服务入口;
  • [glance_store] 部分,配置本地文件系统存储和镜像文件的位置。

注意:此处使用 cat > 覆盖写入,而不是 cat >> 追加写入。因为原配置文件中已存在 [database]、[keystone_authtoken]、[paste_deploy]、[glance_store] 等配置节,若直接追加会导致同名配置节重复,造成关键字冲突和配置解析异常。覆盖前已先备份原文件,便于回滚。

注意:数据库密码中包含 @ 字符,在数据库连接字符串中通常需要进行 URL 编码,即建议写成 Huawei%40123。本次按实验要求暂保留为 Huawei@123,若连接异常可尝试替换为编码后的形式。

同步数据库:

[root@controller ~]# su -s /bin/sh -c "glance-manage db_sync" glance

启动服务:

[root@controller ~]# systemctl enable openstack-glance-api.service
[root@controller ~]# systemctl start openstack-glance-api.service

查看 glance-api.service 状态,确保 glance-api 正常启动。

步骤 4 验证

在镜像上传测试环节,如果使用的镜像无法成功下载,则可以通过离线方式导入。在实际执行镜像上传之前,可以先通过以下命令测试 glance 账号的合法性:

[root@controller ~]# openstack --os-username glance --os-password 'Huawei@123' --os-project-name service --os-auth-url http://controller:5000/v3 --os-user-domain-name Default --os-project-domain-name Default token issue

执行成功后会返回 token,说明 glance 账号合法、认证配置正确。只有该命令执行成功后,再继续执行后续镜像下载与上传操作。

说明:如果 cirros 镜像无法通过 wget 成功下载,可以通过离线方式导入。可提前从老师处获取镜像文件,或使用课程提供的离线下载地址获取 cirros-0.5.2-aarch64-disk.img,再继续执行镜像上传命令。

下载镜像:

[root@controller ~]# source ~/.admin-openrc
[root@controller ~]# wget http://download.cirros-cloud.net/0.5.2/cirros-0.5.2-aarch64-disk.img

向 Image 服务上传镜像:

[root@controller ~]# openstack image create --disk-format qcow2 --container-format bare --file cirros-0.5.2-aarch64-disk.img --public cirros

确认镜像上传并验证属性:

openstack image list

至此,Glance 安装成功。


任务三:OpenStack Glance 基础操作

步骤 1 前提准备(创建用户、组、项目)

请在此实验前,确保正确安装部署好 Keystone、Glance,并确保各个组件能够正确运行。

创建用户 User_01,并设置密码(Huawei@123):

[root@controller ~]# openstack user create --domain default --password-prompt User_01
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | c1e48c75bb564bc4a0c8bfd32d18bcb4 |
| name                | User_01                          |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

按照提示,输入 User_01 的密码。

显示角色列表:

  • admin 为管理员权限最大;
  • member 为项目成员;
  • reader 为只读角色,不能对项目进行操作。
[root@controller ~]# openstack role list
+----------------------------------+---------+
| ID                               | Name    |
+----------------------------------+---------+
| 02d321af33f9453dac77e46c0aafd308 | member  |
| 28738a98844f4152a97763d690092183 | reader  |
| 7d6a22323b9e4f9aa66bb9e8b921d553 | admin   |
| 97a3158bcf0742d481caf33adeb4825c | myrole  |
+----------------------------------+---------+

创建项目 project_01:

[root@controller ~]# openstack project create --domain default project_01
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description |                                  |
| domain_id   | default                          |
| enabled     | True                             |
| id          | 4d01a8e6b4bd4027bb96b2286c8c3fd3 |
| is_domain   | False                            |
| name        | project_01                       |
| options     | {}                               |
| parent_id   | default                          |
| tags        | []                               |
+-------------+----------------------------------+

为用户 User_01 在项目 project_01 添加角色 member:

[root@controller ~]# openstack role add --project project_01 --user User_01 member

查看角色分配情况:

[root@controller ~]# openstack role assignment list --name | grep User_01
| member | User_01@Default    |       | project_01@Default |        |        | False     |

此时,User_01 为项目 project_01 的普通成员。

修改用户 User_01 的环境变量 User_01-openrc.sh。

复制在 Keystone 创建修改的 .admin-openrc 文件,更名为 User_01-openrc:

[root@controller ~]# cp .admin-openrc User_01-openrc

进入 User_01-openrc,并修改如下参数:

[root@controller ~]# cat > User_01-openrc <<'EOF'
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=project_01
export OS_USERNAME=User_01
export OS_PASSWORD=huawei123
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
EOF

导入用户 User_01 的环境变量:

[root@controller ~]# source User_01-openrc

查看项目列表,只可以查看到 project_01,证明用户 User_01 创建成功且能够正常使用:

[root@controller ~]# openstack project list
+----------------------------------+------------+
| ID                               | Name       |
+----------------------------------+------------+
| 4d01a8e6b4bd4027bb96b2286c8c3fd3 | project_01 |
+----------------------------------+------------+

因为 User_01 为项目 project_01 的成员,只能查看到自己的项目,无法查看到其他项目的内容。对比 admin 用户,admin 用户为 admin 项目的管理员,能查看到所有项目:

[root@controller ~]# source .admin-openrc
[root@controller ~]# openstack project list
+----------------------------------+------------+
| ID                               | Name       |
+----------------------------------+------------+
| 1f17a3c4cf004a6dab94fd060e51704d | service    |
| 2bf6c9a4ed5a43ee85e853803a03e72e | admin      |
| 4d01a8e6b4bd4027bb96b2286c8c3fd3 | project_01 |
| dac133c138cf4a9484504f129b26b3d9 | myproject  |
+----------------------------------+------------+

步骤 2 下载镜像

下载 cirros 镜像,若任务二步骤 4 中已下载,则忽略。

[root@localhost glance]# wget http://download.cirros-cloud.net/0.5.2/cirros-0.5.2-aarch64-disk.img

查看下载的镜像文件:

[root@controller ~]# ll
total 27M
-rw-r--r-- 1 ceilometer ceilometer  241K Aug 22 15:07 agent-ipmi.log
-rw-r--r-- 1 ceilometer ceilometer  9.2M Aug 22 17:02 agent-notification.log
-rw-r--r-- 1 root       root         13K Aug 22 14:43 ceilometer-upgrade.log
-rw-r--r-- 1 ceilometer ceilometer  528K Aug 22 17:03 central.log
-rw-r--r-- 1 root       root         17M Dec  7  2021 cirros-0.5.2-aarch64-disk.img
-rw-r--r-- 1 ceilometer ceilometer 1002K Aug 22 17:02 compute.log

在查看镜像详细信息之前,需要先安装 qemu-img 工具:

[root@controller ~]# yum install -y qemu-img

说明:qemu-img 工具用于查看镜像文件的格式、虚拟大小等详细信息。若未安装该工具,直接执行 qemu-img info 命令会提示命令无法识别。因此需要先安装 qemu-img,再执行后续查看镜像详细信息的操作。

查看镜像文件详细信息:

[root@controller ~]# qemu-img info cirros-0.5.2-aarch64-disk.img
image: cirros-0.5.2-aarch64-disk.img
file format: qcow2
virtual size: 112 MiB (117440512 bytes)
disk size: 16.1 MiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    compression type: zlib
    lazy refcounts: false
    refcount bits: 16
    corrupt: false
    extended l2: false

步骤 3 创建并注册镜像

导入用户 admin 环境变量:

[root@controller ~]# source .admin-openrc

查看 OpenStack 镜像相关命令的用法:

[root@controller ~]# openstack image --help
Command "image" matches:
  image add project
  image create
  image delete
  image list
  image member list
  image remove project
  image save
  image set
  image show
  image unset

各子命令具体用法可通过如下方式进行查看:

[root@controller ~]# openstack image create --help
usage: openstack image create [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN] [--noindent]
                                 [--prefix PREFIX] [--max-width <integer>] [--fit-width]
                                 [--print-empty] [--id <id>] [--container-format <container-format>]
                                 [--disk-format <disk-format>] [--min-disk <disk-gb>]
                                 [--min-ram <ram-mb>] [--file <file> | --volume <volume>] [--force]
                                 [--progress] [--sign-key-path <sign-key-path>]
                                 [--sign-cert-id <sign-cert-id>] [--protected | --unprotected]
                                 [--public | --private | --community | --shared]
                                 [--property <key=value>] [--tag <tag>] [--project <project>]
                                 [--import] [--project-domain <project-domain>]
                                 <image-name>
                                 ...

执行以下命令,创建镜像 cirros_01,镜像格式为 QCOW2,镜像设置为 public:

[root@controller ~]# openstack image create --disk-format qcow2 --container-format bare --file cirros-0.5.2-aarch64-disk.img --public cirros_01
+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
| Field            | Value                                                                                                                                         |
+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
| container_format | bare                                                                                                                                          |
| created_at       | XXXX-XX-19T07:36:47Z                                                                                                                          |
| disk_format      | qcow2                                                                                                                                         |
| file             | /v2/images/461e0372-cc23-4805-8fa2-a3e4d3cc086f/file                                                                                          |
| id               | 461e0372-cc23-4805-8fa2-a3e4d3cc086f                                                                                                          |
| min_disk         | 0                                                                                                                                             |
| min_ram          | 0                                                                                                                                             |
| name             | cirros_01                                                                                                                                     |
| owner            | 4d01a8e6b4bd4027bb96b2286c8c3fd3                                                                                                              |
| properties       | os_hidden='False', owner_specified.openstack.md5='', owner_specified.openstack.object='images/cirros_01', owner_specified.openstack.sha256='' |
| protected        | False                                                                                                                                         |
| schema           | /v2/schemas/image                                                                                                                             |
| status           | queued                                                                                                                                        |
| tags             |                                                                                                                                               |
| updated_at       | XXXX-XX-19T07:36:47Z                                                                                                                          |
| visibility       | public                                                                                                                                        |
+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+

参数解释:

  • --disk-format=qcow2:磁盘格式为 qcow2;
  • --container-format=bare:bare 容器格式;
  • --public:公共的;
  • --private:私有的;
  • --file:镜像文件所在位置。

创建镜像 cirros_02,镜像格式为 QCOW2,镜像设置为 private:

[root@controller ~]# openstack image create --disk-format qcow2 --container-format bare --file cirros-0.5.2-aarch64-disk.img --private cirros_02
+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
| Field            | Value                                                                                                                                         |
+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
| container_format | bare                                                                                                                                          |
| created_at       | XXXX-XX-19T07:42:05Z                                                                                                                          |
| disk_format      | qcow2                                                                                                                                         |
| file             | /v2/images/1e082467-38f7-40ed-9da1-a54d5b07dbe7/file                                                                                          |
| id               | 1e082467-38f7-40ed-9da1-a54d5b07dbe7                                                                                                          |
| min_disk         | 0                                                                                                                                             |
| min_ram          | 0                                                                                                                                             |
| name             | cirros_02                                                                                                                                     |
| owner            | 4d01a8e6b4bd4027bb96b2286c8c3fd3                                                                                                              |
| properties       | os_hidden='False', owner_specified.openstack.md5='', owner_specified.openstack.object='images/cirros_02', owner_specified.openstack.sha256='' |
| protected        | False                                                                                                                                         |
| schema           | /v2/schemas/image                                                                                                                             |
| status           | queued                                                                                                                                        |
| tags             |                                                                                                                                               |
| updated_at       | XXXX-XX-19T07:42:05Z                                                                                                                          |
| visibility       | private                                                                                                                                       |
+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+

查看镜像列表,验证镜像是否创建成功:

[root@controller ~]# openstack image list
+--------------------------------------+-----------+--------+
| ID                                   | Name      | Status |
+--------------------------------------+-----------+--------+
| 461e0372-cc23-4805-8fa2-a3e4d3cc086f | cirros_01 | active |
| 1e082467-38f7-40ed-9da1-a54d5b07dbe7 | cirros_02 | active |
+--------------------------------------+-----------+--------+

步骤 4 删除镜像

执行以下命令,查看 cirros_01 镜像是否可被删除:

[root@controller ~]# openstack image delete cirros_01

查看镜像列表,检查镜像是否被删除:

[root@controller ~]# openstack image list
+--------------------------------------+-----------+--------+
| ID                                   | Name      | Status |
+--------------------------------------+-----------+--------+
| 1e082467-38f7-40ed-9da1-a54d5b07dbe7 | cirros_02 | active |
+--------------------------------------+-----------+--------+

发现镜像 cirros_01 删除成功。

步骤 5 修改镜像

将镜像 cirros_02 设置为 protected。

在创建镜像时,若不设置相关参数,镜像默认为 unprotected。

参数解释:

  • --protected:镜像受保护,不可被删除;
  • --unprotected:镜像不受保护。
[root@controller ~]# openstack image set --protected cirros_02

查看镜像 cirros_02 的详细信息,发现 protected 字段变为 true:

[root@controller ~]# openstack image show cirros_02
+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field            | Value                                                                                                                                                                                                                                                                                                                  |
+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum         | 443b7623e27ecf03dc9e01ee93f67afe                                                                                                                                                                                                                                                                                       |
| container_format | bare                                                                                                                                                                                                                                                                                                                   |
| created_at       | XXXX-XX-19T07:42:05Z                                                                                                                                                                                                                                                                                                   |
| disk_format      | qcow2                                                                                                                                                                                                                                                                                                                  |
| file             | /v2/images/1e082467-38f7-40ed-9da1-a54d5b07dbe7/file                                                                                                                                                                                                                                                                   |
| id               | 1e082467-38f7-40ed-9da1-a54d5b07dbe7                                                                                                                                                                                                                                                                                   |
| min_disk         | 0                                                                                                                                                                                                                                                                                                                      |
| min_ram          | 0                                                                                                                                                                                                                                                                                                                      |
| name             | cirros_02                                                                                                                                                                                                                                                                                                              |
| owner            | 4d01a8e6b4bd4027bb96b2286c8c3fd3                                                                                                                                                                                                                                                                                       |
| properties       | os_hash_algo='sha512', os_hash_value='6513f21e44aa3da349f248188a44bc304a3653a04122d8fb4535423c8e1d14cd6a153f735bb0982e2161b5b5186106570c17a9e58b64dd39390617cd5a350f78', os_hidden='False', owner_specified.openstack.md5='', owner_specified.openstack.object='images/cirros_02', owner_specified.openstack.sha256='' |
| protected        | True                                                                                                                                                                                                                                                                                                                   |
| schema           | /v2/schemas/image                                                                                                                                                                                                                                                                                                      |
| size             | 12716032                                                                                                                                                                                                                                                                                                               |
| status           | active                                                                                                                                                                                                                                                                                                                 |
| tags             |                                                                                                                                                                                                                                                                                                                        |
| updated_at       | XXXX-XX-19T07:48:02Z                                                                                                                                                                                                                                                                                                   |
| virtual_size     | 46137344                                                                                                                                                                                                                                                                                                               |
| visibility       | private                                                                                                                                                                                                                                                                                                                |
+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

删除 cirros_02 镜像,验证是否能被删除:

[root@controller ~]# openstack image delete cirros_02
Failed to delete image with name or ID 'cirros_02': HttpException: 403: Client Error for url: http://controller:9292/v2/images/1e082467-38f7-40ed-9da1-a54d5b07dbe7, 403 Forbidden: Image 1e082467-38f7-40ed-9da1-a54d5b07dbe7 is protected and cannot be deleted.
Failed to delete 1 of 1 images.

提示镜像被保护,不能删除。

步骤 6 共享镜像

OpenStack 镜像服务可以实现镜像在不同用户间共享,而不必向所有用户公开,从而实现对镜像更好的控制。

导入用户 User_01 的环境变量:

[root@controller ~]# source User_01-openrc

列出镜像列表,验证能否看到 cirros_02 镜像:

[root@controller ~]# openstack image list
+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| 80b42e3f-903f-49be-816e-221f0bdd2848 | cirros | active |
+--------------------------------------+--------+--------+

发现无法查看,由于 User_01 为项目 project_01 的成员,无法查看到在 admin 项目中的镜像。

导入用户 admin 的环境变量:

[root@controller ~]# source .admin-openrc

将镜像设置为 shared:

[root@controller ~]# openstack image set --shared cirros_02

查看镜像详细信息,验证修改是否成功:

[root@controller ~]# openstack image show cirros_02
+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field            | Value                                                                                                                                                                                                                                                                                                                  |
+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum         | 443b7623e27ecf03dc9e01ee93f67afe                                                                                                                                                                                                                                                                                       |
| container_format | bare                                                                                                                                                                                                                                                                                                                   |
| created_at       | XXXX-XX-19T09:05:33Z                                                                                                                                                                                                                                                                                                   |
| disk_format      | qcow2                                                                                                                                                                                                                                                                                                                  |
| file             | /v2/images/ce8a19d8-cc42-4526-9d23-21bb783bc7e7/file                                                                                                                                                                                                                                                                   |
| id               | ce8a19d8-cc42-4526-9d23-21bb783bc7e7                                                                                                                                                                                                                                                                                   |
| min_disk         | 0                                                                                                                                                                                                                                                                                                                      |
| min_ram          | 0                                                                                                                                                                                                                                                                                                                      |
| name             | cirros_02                                                                                                                                                                                                                                                                                                              |
| owner            | 2bf6c9a4ed5a43ee85e853803a03e72e                                                                                                                                                                                                                                                                                       |
| properties       | os_hash_algo='sha512', os_hash_value='6513f21e44aa3da349f248188a44bc304a3653a04122d8fb4535423c8e1d14cd6a153f735bb0982e2161b5b5186106570c17a9e58b64dd39390617cd5a350f78', os_hidden='False', owner_specified.openstack.md5='', owner_specified.openstack.object='images/cirros_02', owner_specified.openstack.sha256='' |
| protected        | False                                                                                                                                                                                                                                                                                                                  |
| schema           | /v2/schemas/image                                                                                                                                                                                                                                                                                                      |
| size             | 12716032                                                                                                                                                                                                                                                                                                               |
| status           | active                                                                                                                                                                                                                                                                                                                 |
| tags             |                                                                                                                                                                                                                                                                                                                        |
| updated_at       | XXXX-XX-19T09:12:20Z                                                                                                                                                                                                                                                                                                   |
| virtual_size     | 46137344                                                                                                                                                                                                                                                                                                               |
| visibility       | shared                                                                                                                                                                                                                                                                                                                 |
+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

查看镜像列表、项目列表,记录下 cirros_02、project_01 的 ID:

[root@controller ~]# openstack image list
+--------------------------------------+-----------+--------+
| ID                                   | Name      | Status |
+--------------------------------------+-----------+--------+
| ce8a19d8-cc42-4526-9d23-21bb783bc7e7 | cirros_02 | active |
+--------------------------------------+-----------+--------+
[root@controller ~]# openstack project list
+----------------------------------+------------+
| ID                               | Name       |
+----------------------------------+------------+
| 1f17a3c4cf004a6dab94fd060e51704d | service    |
| 2bf6c9a4ed5a43ee85e853803a03e72e | admin      |
| 4d01a8e6b4bd4027bb96b2286c8c3fd3 | project_01 |
| dac133c138cf4a9484504f129b26b3d9 | myproject  |
+----------------------------------+------------+

执行 openstack image add project [imageID] [projectID],将镜像 cirros_02 添加到项目 project_01 中:

[root@controller ~]# openstack image add project ce8a19d8-cc42-4526-9d23-21bb783bc7e7 4d01a8e6b4bd4027bb96b2286c8c3fd3
+------------+--------------------------------------+
| Field      | Value                                |
+------------+--------------------------------------+
| created_at | XXXX-XX-19T09:22:07Z                 |
| image_id   | ce8a19d8-cc42-4526-9d23-21bb783bc7e7 |
| member_id  | 4d01a8e6b4bd4027bb96b2286c8c3fd3     |
| schema     | /v2/schemas/member                   |
| status     | pending                              |
| updated_at | XXXX-XX-19T09:22:07Z                 |
+------------+--------------------------------------+

此时,状态显示为 pending 状态。

执行完成后,导入用户 User_01 的环境变量,查看是否能够显示共享镜像:

[root@controller ~]# source User_01-openrc
[root@controller ~]# openstack image list
+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| 80b42e3f-903f-49be-816e-221f0bdd2848 | cirros | active |
+--------------------------------------+--------+--------+

发现仍然无法显示,所以状态为 pending,用户还是无法查看共享镜像。

更新状态为 accept,接受共享镜像:

[root@controller ~]# openstack image set --accept ce8a19d8-cc42-4526-9d23-21bb783bc7e7

再次查看是否能显示共享镜像:

[root@controller ~]# openstack image list
+--------------------------------------+-----------+--------+
| ID                                   | Name      | Status |
+--------------------------------------+-----------+--------+
| 80b42e3f-903f-49be-816e-221f0bdd2848 | cirros    | active |
| ce8a19d8-cc42-4526-9d23-21bb783bc7e7 | cirros_02 | active |
+--------------------------------------+-----------+--------+

步骤 7 导出镜像

执行以下命令,保存镜像 cirros_02 到本地:

[root@controller ~]# openstack image save --file cirros_02 cirros_02

查看保存的镜像文件:

[root@controller ~]# ls
anaconda-ks.cfg  cirros_02  cirros-0.5.2-aarch64-disk.img  User_01-openrc.sh  User_02-openrc
Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐