【版本】
当前版本号v20240310
版本 | 修改说明 |
---|---|
v20240310 | 新增参考配置 |
v20230701 | 文档基于 RockyLinux8 和 Openstack Yoga 开发 |
任务4 - 控制节点安装 Glance 镜像服务
【任务目的】
- 掌握搭建 Openstack Glance 组件
【任务环境】
- 内存:至少4G
- 硬盘:至少空余40G
- 操作系统: 64位 Windows系统。
【任务资源】
- FinalShell
- RockyLinux 8 系统镜像
- VirtualBox
【任务步骤】
- 使用Root用户登录控制节点(Controller)。输出 Hostname ,确认所在节点是控制节点。
hostname
结果:
controller+你的学号后3位
注意以下步骤在控制节点(Controller)上执行!
- 使用 root 用户登录 MariaDB 数据库,密码为
123456
。创建 Glance 库,glance用户和授权。
mysql -u root -p
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
IDENTIFIED BY 'GLANCE_DBPASS';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
IDENTIFIED BY 'GLANCE_DBPASS';
exit;
- 在 Keystone 创建 Glance 用户及关联角色。
source /etc/keystone/admin-openrc
openstack user create --domain default --password GLANCE_PASS glance
openstack project create --domain default --description "Service Project" service
openstack role add --project service --user glance admin
openstack user create --domain default --password MY_PASSWORD MY_SERVICE
openstack role add --user MY_SERVICE --user-domain Default --system all reader
- 在 Keystone 上创建 Glance Service 和 endpoint。注意替换为你的学号
openstack service create --name glance \
--description "OpenStack Image" image
openstack endpoint create --region RegionOne \
image public http://controller+你学号后3位:9292
openstack endpoint create --region RegionOne \
image internal http://controller+你学号后3位:9292
openstack endpoint create --region RegionOne \
image admin http://controller+你学号后3位:9292
注意这里的 service 不能重复创建,运行命令
openstack service list
应该只能查看到1个 Glance 的 service,如果有多个可以用openstack service delete '替换为service ID'
命令删除
注意这里 endpoint 不能重复创建,运行命令
openstack endpoint list
应该只能查看到3个 Glance 的 endpoint,如果有多个可以用openstack endpoint delete '替换为endpoint ID'
命令删除
- 安装服务相应 Glance 软件包。
dnf install openstack-glance -y
- 备份 Glance API 配置文件。注意这个命令不要重复执行,否则会覆盖原有备份配置文件。
cp /etc/glance/glance-api.conf{,.bak}
- 清除配置文件注释
grep '^[a-Z\[]' /etc/glance/glance-api.conf.bak >/etc/glance/glance-api.conf
- 设置 API 配置项,注意替换为你的个人学号。
openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@controller+你的学号后3位/glance
openstack-config --set /etc/glance/glance-api.conf glance_store stores file,http
openstack-config --set /etc/glance/glance-api.conf glance_store default_store file
openstack-config --set /etc/glance/glance-api.conf glance_store filesystem_store_datadir /var/lib/glance/images/
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://controller+你的学号后3位:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken www_authenticate_uri http://controller+你的学号后3位:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers controller+你的学号后3位:11211
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_type password
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name service
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password GLANCE_PASS
openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone
openstack-config --set /etc/glance/glance-api.conf DEFAULT use_keystone_quotas True
openstack-config --set /etc/glance/glance-api.conf oslo_limit auth_url http://controller+你的学号后3位:5000
openstack-config --set /etc/glance/glance-api.conf oslo_limit auth_type password
openstack-config --set /etc/glance/glance-api.conf oslo_limit user_domain_id default
openstack-config --set /etc/glance/glance-api.conf oslo_limit username MY_SERVICE
openstack-config --set /etc/glance/glance-api.conf oslo_limit system_scope all
openstack-config --set /etc/glance/glance-api.conf oslo_limit password MY_PASSWORD
openstack-config --set /etc/glance/glance-api.conf oslo_limit endpoint_id ENDPOINT_ID
openstack-config --set /etc/glance/glance-api.conf oslo_limit region_name RegionOne
可以用vim 打开
/etc/glance/glance-api.conf
配置文件与/etc/glance/glance-api.conf 参考配置进行比对确认。
- 同步 glance 数据库
cd /etc/glance
su -s /bin/sh -c "glance-manage db_sync" glance
运行成功会显示
Database is synced successfully.
- 进入 MariaDB 查看是否有表格出现。密码为
GLANCE_DBPASS
。如果有则表示数据库同步成功。
mysql -u glance -p
use glance;
show tables;
- 退出 MariaDB 。
exit
- 启动 Glance 服务
systemctl enable openstack-glance-api
systemctl start openstack-glance-api
- 查看 Glance 服务是否active。
systemctl status openstack-glance-api
- 上传镜像文件 cirros-0.4.0-x86_64-disk.img 和 cirros-0.6.2-x86_64-disk.img 到
/opt
目录。
Cirros 是一个迷你的 Linux 发行版系统,它启动速度快,通常用作测试云虚拟机。
- 使用上传的镜像文件,创建一个名为
cirros
,磁盘格式为qcow2
的镜像。正常创建会返回类似以下的表格内容。
source /etc/keystone/admin-openrc
openstack image create "cirros4" \
--file /opt/cirros-0.4.0-x86_64-disk.img \
--disk-format qcow2 --container-format bare \
--public
openstack image create "cirros62" \
--file /opt/cirros-0.6.2-x86_64-disk.img \
--disk-format qcow2 --container-format bare \
--public
类似结果:
+------------------+------------------------------------------------------+
| Field | Value |
+------------------+------------------------------------------------------+
| checksum | 443b7623e27ecf03dc9e01ee93f67afe |
| container_format | bare |
| created_at | 2021-03-02T16:49:35Z |
| disk_format | qcow2 |
| file | /v2/images/6e9145fd-ab25-417b-8edc-61703fce43da/file |
| id | 6e9145fd-ab25-417b-8edc-61703fce43da |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros |
| owner | 70667e2a19c640b796c9e2de6571a33c |
| protected | False |
| schema | /v2/schemas/image |
| size | 12716032 |
| status | active |
| tags | |
| updated_at | 2021-03-02T16:49:36Z |
| virtual_size | None |
| visibility | public |
+------------------+------------------------------------------------------+
【控制节点验证步骤】
- 查询 glance service,表里应该只有一行记录。
source /etc/keystone/admin-openrc
openstack service list |grep -E "ID|glance"
类似结果:
| ID | Name | Type |
| 6a7ef1241c29489db2bd45ed1db14bab | glance | image |
- 查询 glance endpoint,表里应该有3行记录。
source /etc/keystone/admin-openrc
openstack endpoint list |grep -E "ID|glance"
类似结果:
| ID | Region | Service Name | Service Type | Enabled | Interface | URL |
| 2417b5505981478a9c0c09018bd92c10 | RegionOne | glance | image | True | public | http://controller999:9292 |
| 736f1c1cad03429e86462492ffa97dd9 | RegionOne | glance | image | True | admin | http://controller999:9292 |
| caaa3d7556bb46ab8548f1768801817e | RegionOne | glance | image | True | internal | http://controller999:9292 |
- 查询 glance user,表里应该有1行记录。
source /etc/keystone/admin-openrc
openstack user list |grep -E "ID|glance"
类似结果:
| ID | Name |
| c5a480d3f8ba41458926135609074b3c | glance |
- 进入数据库查询 Glance 库,查看images表的镜像信息是否和上面结果一致。
mysql -u glance -p
MariaDB [(none)]>use glance;
MariaDB [glance]> select name,status,disk_format,created_at from images;
- 镜像信息也可以使用 openstack 客户端命令进行查询。
source /etc/keystone/admin-openrc
openstack image list --property name=cirros
- 查看 OpenStack 相关服务是否是 active 的状态。正常应该出现7个服务 active。
opst-proc-show.sh
- 正常应该返回以下类似结果,状态应该都是
active
。
UNIT LOAD ACTIVE SUB DESCRIPTION
chronyd.service loaded active running NTP client/server
etcd.service loaded active running Etcd Server
httpd.service loaded active running The Apache HTTP Server
mariadb.service loaded active running MariaDB 10.3 database server
memcached.service loaded active running memcached daemon
rabbitmq-server.service loaded active running RabbitMQ broker
- 如果 Glance 出现问题,可以点击下载此 /etc/glance/glance-api.conf 参考配置 进行对比。
【常见问题FAQ】
【后台进程(服务)说明】
如果某个后台进程(服务)无法启动,需要查看日志,可以使用以下命令,日志文件路径在下表有描述。
tail -100 日志文件
服务名称 | 日志目录/路径 | 说明 |
---|---|---|
chronyd | /var/log/chrony | chrony是网络时间协议(NTP)的实现。它可以替代ntpd,实现服务器 |
rabbitmq-server | /var/log/rabbitmq | RabbitMQ 是高级消息队列协议(AMQP)开放标准的实现,常用于服务器之间的消息通讯,Openstack 使用 RabbitMQ 作为底层组件来实现不同模块之间的远程调用(RPC)。 |
mariadb | /var/log/mariadb | MariaDB 是非常流行的开源关系型数据库,它能够兼容MySQL |
memcached | /var/log/messages | Memcached 是一个基于内存的,开源的分布式对象缓存系统。 Openstack 会使用 Memcached 存储一些短期的对象,例如令牌等。 |
httpd | /var/log/httpd | Apache Web 服务器,对外提供 HTTP 等协议的 Web 访问服务 |
openstack-glance-api | /var/log/glance/api.log | 提供Glance API调用服务,对应配置文件/etc/glance/glance-api.conf,进程端口9292 |
【思考和探索】
Linux 命令中
|
有什么作用?openstack-config --set
命令后面的参数分别表示什么意思?