|NO.Z.00009|——————————|^^^^ 部署 ^^^^|——|OpenStack&组件.V02|——|openstack-glance|controller节点下部署glance镜像服务|
一、构建实验openstack-ImageServeice(glance):在controller节点安装并配置OpenStack镜像服务
### --- 配置先决条件
### --- 创建数据库
~~~ 以数据库管理员root的身份登录数据库
[root@controller ~]# mysql -u root -p
Enter password: 123456
~~~ 创建glance数据库
MariaDB [(none)]> CREATE DATABASE glance;
Query OK, 1 row affected (0.01 sec)
~~~ 创建数据库用户glance,并授予其对glance数据库的管理权限
~~~ 退出数据库
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';
Query OK, 0 rows affected (0.00 sec)
### --- 启动admin环境脚本;启动管理员脚本
[root@controller ~]# source admin-openrc.sh
### --- 创建认证服务凭证,完成下列步骤;
~~~ 创建glance用户
[root@controller ~]# keystone user-create --name glance --pass GLANCE_PASS
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | |
| enabled | True |
| id | 8cdc5b5c70094cb79a819b26d8c94e40 |
| name | glance |
| username | glance |
+----------+----------------------------------+
~~~ 将glance用户连接到service租户和admin角色
[root@controller ~]# keystone user-role-add --user glance --tenant service --role admin
~~~ 创建glance服务
[root@controller ~]# keystone service-create --name glance --type image --description "OpenStack Image Service"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Image Service |
| enabled | True |
| id | 659d6a3b0f0d441caa5c43de962434a7 |
| name | glance |
| type | image |
+-------------+----------------------------------+
### --- 为openstack镜像服务创建认证服务端点
[root@controller ~]# keystone endpoint-create \
> --service-id $(keystone service-list | awk '/ image / {print$2}') \
> --publicurl http://controller.nice.com:9292 \
> --internalurl http://controller.nice.com:9292 \
> --adminurl http://controller.nice.com:9292 \
> --region regionOne
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| adminurl | http://controller.nice.com:9292 |
| id | 492b4495a59142399824f86be0001e52 |
| internalurl | http://controller.nice.com:9292 |
| publicurl | http://controller.nice.com:9292 |
| region | regionOne |
| service_id | 659d6a3b0f0d441caa5c43de962434a7 |
+-------------+----------------------------------+
二、安装并配置镜像服务组件
### --- 安装软件包
[root@controller ~]# yum install openstack-glance python-glaceclient
Installed:
openstack-glance.noarch 0:2014.2-1.el7.centos
Dependency Installed:
crudini.noarch 0:0.4-1.el7 openstack-utils.noarch 0:2014.1-3.el7.centos.1 pysendfile.x86_64 0:2.0.0-5.el7
python-boto.noarch 0:2.32.1-1.el7 python-cinderclient.noarch 0:1.1.1-1.el7.centos python-futures.noarch 0:2.1.6-1.el7
python-glance.noarch 0:2014.2-1.el7.centos python-glance-store.noarch 0:0.1.8-1.el7.centos python-glanceclient.noarch 1:0.14.1-1.el7.centos
python-httplib2.noarch 0:0.7.7-3.el7 python-ipaddr.noarch 0:2.1.9-5.el7 python-jsonpatch.noarch 0:1.2-3.el7.centos
python-jsonpointer.noarch 0:1.0-2.el7.centos python-oslo-vmware.noarch 0:0.6.0-1.el7.centos python-osprofiler.noarch 0:0.3.0-1.el7.centos
python-retrying.noarch 0:1.2.3-4.el7.centos python-simplegeneric.noarch 0:0.8-7.el7 python-simplejson.x86_64 0:3.3.3-1.el7
python-suds.noarch 0:0.4.1-5.el7 python-swiftclient.noarch 0:2.3.1-2.el7.centos python-warlock.noarch 0:1.0.1-1.el7
python-wsme.noarch 0:0.6-2.el7
Complete!
### --- 编辑/etc/glance/glance-api.conf文件,并完成下列操作
[root@controller ~]# vim /etc/glance/glance-api.conf
# 修改[database]小节,配置数据库连接:
[database]
......
connection=mysql://glance:GLANCE_DBPASS@controller.nice.com/glance
# 修改[keystone_authtoken]和[paste_deploy]小节,配置认证服务访问:
[keystone_authtoken]
.....
auth_uri=http://controller.nice.com:5000/v2.0
identity_uri=http://controller.nice.com:35357
admin_tenant_name=service
admin_user=glance
admin_password=GLANCE_PASS
[paste_deploy]
......
flavor=keystone # 设置认证类型为keystone
# (可选)在[DEFAULT]小节中配置详细日志输出,方便排错
[DEFAULT]
......
verbose=True # 开启日志接口
### --- 编辑/etc/glance/glance-registry.con文件,并完成下列配置:和数据库交流的配置文件
[root@controller ~]# vim /etc/glance/glance-registry.conf
# 在[database]
......
connection=mysql://glance:GLANCE_DBPASS@controller.nice.com/glance
# 在[keystone_authtoken]和[paste_deploy]小节中配置认证服务访问
[keystone_authtoken]
......
auth_uri=http://controller.nice.com:5000/v2.0
identity_uri=http://controller.nice.com:35357
admin_tenant_name=service
admin_user=glance
admin_password=GLANCE_PASS
[paste_deploy]
......
flavor=keystone
# 在[glance_store]小节中配置本地文件系统存储和镜像文件的存放路径
[glance_store] # 这个存储默认是没有的,我们自己去创建,
default_store=file
filesystem_store_datadir=/var/lib/glance/images/ # 这个目录不需要手动创建,glance服务会帮我们创建
# (可选)在[DEFAULT]小节中配置详细日志输出,方便排错
[DEFAULT]
......
verbose=True # 开启日志
### --- 初始化镜像服务的数据库
[root@controller ~]# su -s /bin/sh -c "glance-manage db_sync" glance
### --- 登录到数据库中;查看是否创建成功
[root@controller ~]# mysql -uroot -p
Enter password: 123456
MariaDB [(none)]> use glance
MariaDB [glance]> show tables;
+----------------------------------+
| Tables_in_glance |
+----------------------------------+
| image_locations |
| image_members |
| image_properties |
| image_tags |
| images |
| metadef_namespace_resource_types |
| metadef_namespaces |
| metadef_objects |
| metadef_properties |
| metadef_resource_types |
| migrate_version |
| task_info |
| tasks |
+----------------------------------+
三、安装完成
### --- 启动镜像服务并设置开机自动启动:
[root@controller ~]# systemctl enable openstack-glance-api.service openstack-glance-registry.service
[root@controller ~]# systemctl start openstack-glance-api.service openstack-glance-registry.service
四、验证安装
### --- 本节演示如何使用CirrOS验证镜像服务是否安装成功,CirrOS是一个小linux镜像,
~~~ 可以帮你验证镜像服务
[root@controller ~]# yum install -y lrzsz
### --- 创建一个临时目录
[root@controller ~]# mkdir /tmp/images // 此步不执行也可
[root@controller ~]# cd /tmp/images // 此步不执行也可
### --- 下载CirrOS镜像文件到临时目录
~~~ 将测试镜像上传到controller:cirros-0.3.3-x86_64-disk.img
[root@controller ~]# wget http://cdn.download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img(真实环境)
[root@controller ~]# wget ftp://ftp服务器ip/cirros-0.3.3-x86_64-disk.img(实验室环境) // 或者直接通过rz命令上传
### --- 运行admin环境脚本,以便执行管理命令
[root@controller ~]# source admin-openrc.sh
### --- 上传镜像文件到镜像服务器
~~~ glance image-create相关选项含义:
--name<NAME> // 镜像名称:
--file<FILE> // 要上传文件及路径
--disk-format<DISK_FORMAT> // 镜像的磁盘格式。可以支持:ami/ari/aki/bhd/vmdk/raw/qcow2/vdi/is格式
--container-format<CONTAINER_FORMAT> // 镜像容器格式,可以支持ami/ari/aki/bare/ovf格式。
--is-public{True,False} // 镜像是否可以被公共访问
--progress: // 显示上传进度
[root@controller ~]# glance image-create --name "cirros-0.3.3-x86_64" --file cirros-0.3.3-x86_64-disk.img --disk-format qcow2 --container-format bare --is-public True --progress
[=============================>] 100%
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | 133eae9fb1c98f45894a4e60d8736619 |
| container_format | bare |
| created_at | 2021-01-10T02:51:21 |
| deleted | False |
| deleted_at | None |
| disk_format | qcow2 |
| id | 9254729e-15b4-4315-b396-3f3e2e5b339f |
| is_public | True |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros-0.3.3-x86_64 |
| owner | 7bce6e7e6d724ad188e4f70ad9d51e17 |
| protected | False |
| size | 13200896 |
| status | active |
| updated_at | 2021-01-10T02:51:22 |
| virtual_size | None |
+------------------+--------------------------------------+
### --- 确认镜像文件上传并验证属性
~~~ status状态为active状态,说明上传成功了;代表已经可用。
[root@controller ~]# glance image-list
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
| 9254729e-15b4-4315-b396-3f3e2e5b339f | cirros-0.3.3-x86_64 | qcow2 | bare | 13200896 | active |
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
### --- 删除临时目录
[root@controller ~]# rm -rf cirros-0.3.3-x86_64-disk.img
附录一:故障处理:
### --- 报错现象:
[root@controller ~]# glance image-create --name "cirros-0.3.3-x86_64" --file cirros-0.3.3-x86_64-disk.img --disk-format qcow2 --container-format bare --is-public True --progress
You must provide a username via either --os-username or env[OS_USERNAME]
### --- 解决方案:
~~~ 运行admin环境脚本,以便执行管理命令
[root@controller ~]# source admin-openrc.sh // 运行环境变量脚本
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv012-openstack
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」