OpenStack组件安装之Glance 安装与配置

Glance 安装与配置

实验概述

实验介绍

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

实验环境

服务器说明

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

虚拟机说明

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

软件说明

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

实验目的

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

任务一:实验环境搭建

步骤 1 环境配置

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

bash 复制代码
[root@controller ~]# yum -y update
[root@controller ~]# yum -y install openstack-release-wallaby
[root@controller ~]# yum clean all && yum makecache

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

bash 复制代码
[root@controller ~]# vim /etc/yum.repos.d/openEuler.repo

在文件中添加以下内容:

ini 复制代码
[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,则需关闭防火墙。

bash 复制代码
[root@controller ~]# systemctl status firewalld.service

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

bash 复制代码
[root@controller ~]# systemctl stop firewalld.service

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

bash 复制代码
[root@controller ~]# systemctl disable firewalld.service

关闭 SELinux。

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

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

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

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

bash 复制代码
[root@controller ~]# vim /etc/selinux/config

任务二:Glance 安装与配置

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

创建数据库:

sql 复制代码
[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。

创建服务凭证:

bash 复制代码
[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 端点:

bash 复制代码
[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

安装软件包:

bash 复制代码
[root@controller ~]# yum -y install openstack-glance

步骤 3 配置 Glance

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

先备份原配置文件:

bash 复制代码
[root@controller ~]# cp /etc/glance/glance-api.conf /etc/glance/glance-api.conf.bak

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

bash 复制代码
[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,若连接异常可尝试替换为编码后的形式。

同步数据库:

bash 复制代码
[root@controller ~]# su -s /bin/sh -c "glance-manage db_sync" glance

启动服务:

bash 复制代码
[root@controller ~]# systemctl enable openstack-glance-api.service
[root@controller ~]# systemctl start openstack-glance-api.service

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

步骤 4 验证

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

bash 复制代码
[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,再继续执行镜像上传命令。

下载镜像:

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

向 Image 服务上传镜像:

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

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

bash 复制代码
openstack image list

至此,Glance 安装成功。


任务三:OpenStack Glance 基础操作

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

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

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

bash 复制代码
[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 为只读角色,不能对项目进行操作。
bash 复制代码
[root@controller ~]# openstack role list
+----------------------------------+---------+
| ID                               | Name    |
+----------------------------------+---------+
| 02d321af33f9453dac77e46c0aafd308 | member  |
| 28738a98844f4152a97763d690092183 | reader  |
| 7d6a22323b9e4f9aa66bb9e8b921d553 | admin   |
| 97a3158bcf0742d481caf33adeb4825c | myrole  |
+----------------------------------+---------+

创建项目 project_01:

bash 复制代码
[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:

bash 复制代码
[root@controller ~]# openstack role add --project project_01 --user User_01 member

查看角色分配情况:

bash 复制代码
[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:

bash 复制代码
[root@controller ~]# cp .admin-openrc User_01-openrc

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

bash 复制代码
[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 的环境变量:

bash 复制代码
[root@controller ~]# source User_01-openrc

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

bash 复制代码
[root@controller ~]# openstack project list
+----------------------------------+------------+
| ID                               | Name       |
+----------------------------------+------------+
| 4d01a8e6b4bd4027bb96b2286c8c3fd3 | project_01 |
+----------------------------------+------------+

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

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

步骤 2 下载镜像

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

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

查看下载的镜像文件:

bash 复制代码
[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 工具:

bash 复制代码
[root@controller ~]# yum install -y qemu-img

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

查看镜像文件详细信息:

bash 复制代码
[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 环境变量:

bash 复制代码
[root@controller ~]# source .admin-openrc

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

bash 复制代码
[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

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

bash 复制代码
[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:

bash 复制代码
[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:

bash 复制代码
[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                                                                                                                                       |
+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+

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

bash 复制代码
[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 镜像是否可被删除:

bash 复制代码
[root@controller ~]# openstack image delete cirros_01

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

bash 复制代码
[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:镜像不受保护。
bash 复制代码
[root@controller ~]# openstack image set --protected cirros_02

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

bash 复制代码
[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 镜像,验证是否能被删除:

bash 复制代码
[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 的环境变量:

bash 复制代码
[root@controller ~]# source User_01-openrc

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

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

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

导入用户 admin 的环境变量:

bash 复制代码
[root@controller ~]# source .admin-openrc

将镜像设置为 shared:

bash 复制代码
[root@controller ~]# openstack image set --shared cirros_02

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

bash 复制代码
[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:

bash 复制代码
[root@controller ~]# openstack image list
+--------------------------------------+-----------+--------+
| ID                                   | Name      | Status |
+--------------------------------------+-----------+--------+
| ce8a19d8-cc42-4526-9d23-21bb783bc7e7 | cirros_02 | active |
+--------------------------------------+-----------+--------+
bash 复制代码
[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 中:

bash 复制代码
[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 的环境变量,查看是否能够显示共享镜像:

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

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

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

bash 复制代码
[root@controller ~]# openstack image set --accept ce8a19d8-cc42-4526-9d23-21bb783bc7e7

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

bash 复制代码
[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 到本地:

bash 复制代码
[root@controller ~]# openstack image save --file cirros_02 cirros_02

查看保存的镜像文件:

bash 复制代码
[root@controller ~]# ls
anaconda-ks.cfg  cirros_02  cirros-0.5.2-aarch64-disk.img  User_01-openrc.sh  User_02-openrc
相关推荐
小马同学-10 天前
OpenStack网络管理-neutron
网络·openstack·neutron
JudithHuang22 天前
创建第一台实例:Horizon ↔ CLI
openstack
JudithHuang22 天前
Apple Silicon 上 Cirros 控制台VNC打不了字
openstack
JudithHuang23 天前
OpenStack 是什么:一张图看懂在干什么
openstack
SeanQhl1 个月前
基于华为云ARM架构ECS平台的OpenStack Wallaby All-in-one 完整部署指导
openstack·all-in-one
JudithHuang1 个月前
从零安装 OpenStack:DevStack + Multipass 本地可复现指南
openstack
小马同学-1 个月前
OpenStack 使用实战:Web 界面与 CLI 命令行实验
运维·云计算·openstack
小马同学-1 个月前
OpenStack 镜像管理:Glance 镜像服务实验
运维·云计算·openstack
闲云自留地1 个月前
Neutron 实战教程:物理 vs 虚拟网络,OVN 环境创建网络与安全策略
服务器·网络·openstack