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

所有评论(0)