【版本】
当前版本号v20230313
版本 | 修改说明 |
---|---|
v20230313 | 增加后台进程(服务)说明 |
v20230207 | 修正部分命令拼写错误 |
v20220309 | 增加提醒service和endpoint不能重复创建 |
v20220208 | 修正相关步骤 |
v20210324 | 增加验证步骤 |
v20210303-3 | memcached_servers配置的地址需要加学号后3位 |
v20210303-2 | 步骤3增加project service创建 |
v20210303 | 运行openstack镜像命令前先设置环境变量 |
v20210302 | 初始化版本 |
【实验名称】
云计算部署实战 Part 4 - 安装 Glance 镜像服务
【实验目的】
- 掌握搭建 Openstack Glance 组件
【实验环境】
- 内存:至少4G
- 硬盘:至少空余40G
- 操作系统: 64位 Windows系统。
【实验资源】
- FinalShell
- CentOS 7 系统镜像
- VirtualBox
- Openstack 源
- CirrOS 镜像
【实验步骤】
- 使用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
- 在 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'
命令删除
- 安装服务相应软件包
yum 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_uri http://controller+你的学号后3位:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://controller+你的学号后3位:35357
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
- 备份 Glance Registry 配置
cp /etc/glance/glance-registry.conf{,.bak}
- 清除配置文件注释
grep '^[a-Z\[]' /etc/glance/glance-registry.conf.bak > /etc/glance/glance-registry.conf
- 设置 Registry 配置项,注意替换为你的个人学号。
openstack-config --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@controller+你的学号后3位/glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_uri http://controller+你的学号后3位:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://controller+你的学号后3位:35357
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers controller+你的学号后3位:11211
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_type password
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_name service
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken username glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken password GLANCE_PASS
openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
- 同步 glance 数据库
cd /etc/glance
su -s /bin/sh -c "glance-manage db_sync" glance
- 进入 MariaDB 查看是否有表格出现。密码为
GLANCE_DBPASS
。如果有则表示数据库同步成功。
mysql -u glance -p
use glance;
show tables;
- 退出 MariaDB 。
exit
- 启动 Glance 服务
systemctl enable openstack-glance-api.service openstack-glance-registry.service
systemctl start openstack-glance-api.service openstack-glance-registry.service
上传镜像文件 cirros-0.4.0-x86_64-disk.img 到
/opt
目录。Cirros 是一个迷你的 Linux 发行版系统。使用上传的镜像文件,创建一个名为
cirros
,磁盘格式为qcow2
的镜像。正常创建会返回类似以下的表格内容。
source /etc/keystone/admin-openrc
openstack image create "cirros" \
--file /opt/cirros-0.4.0-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
- 验证
glance-api.conf
和glance-registry.conf
配置文件里面 controller 出现的次数。注意替换为你的个人学号。
grep -o controller+你学号后3位 /etc/glance/glance-api.conf|wc -l
验证结果:
4
grep -o controller+你学号后3位 /etc/glance/glance-registry.conf|wc -l
验证结果:
4
- 查看以下服务是否是 active 的状态。正常应该出现7个服务 active。
systemctl -a |grep -E "UNIT|chronyd|memcached|rabbitmq|mariadb|glance|httpd"
【后台进程(服务)说明】
服务名称 | 日志目录/路径 | 说明 |
---|---|---|
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 |
openstack-glance-registry | /var/log/glance/registry.log | 提供镜像(images)注册等服务,对应配置文件 /etc/glance/glance-registry.conf,进程端口9191 |
【思考和探索】
步骤23中的
grep
命令和wc
命令分别有什么作用?Linux 命令中
|
有什么作用?openstack-config --set
命令后面的参数分别表示什么意思?