OpenStack Train版离线部署|4控制节点-Glance镜像服务组件

610 阅读6分钟

欢迎留言讨论,期待与你共同进步掘金人的第一篇博客 - 掘金 (juejin.cn)

本系列文章包教你如何从零开始搭建一套OpenStack开发环境,涉及多个OpenStack。
当前教程中使用的OpenStack的安装版本为第20个版本Train,简称T版本。
Release Note
Train,Originally Released: 16 October, 2019
Ussuri,Originally Released: 13 May, 2020
Victoria,Originally Released: 14 October, 2020

掘金社区


掘金社区:OpenStack Train版离线部署|系列教程「全」
掘金社区:OpenStack Ussuri版离线部署|系列教程「全」
掘金社区:OpenStack Victoria版部署|系列教程「全」

OpenStack Train版离线部署|0制作本地离线yum源
OpenStack Train版离线部署|1控制节点-环境准备
OpenStack Train版离线部署|2计算节点-环境准备
OpenStack Train版离线部署|3控制节点-Keystone认证服务组件
OpenStack Train版离线部署|4控制节点-Glance镜像服务组件
OpenStack Train版离线部署|5控制节点-Placement服务组件
OpenStack Train版离线部署|6.1控制节点-Nova计算服务组件
OpenStack Train版离线部署|6.2计算节点-Nova计算服务组件
OpenStack Train版离线部署|6.3控制节点-Nova计算服务组件
OpenStack Train版离线部署|7.1控制节点-Neutron网络服务组件
OpenStack Train版离线部署|7.2计算节点-Neutron网络服务组件
OpenStack Train版离线部署|7.3控制节点-Neutron网络服务组件
OpenStack Train版离线部署|8控制节点-Horizon服务组件
OpenStack Train版离线部署|9启动一个实例
OpenStack Train版离线部署|10控制节点-Heat服务组件
OpenStack Train版离线部署|11.1控制节点-Cinder存储服务组件
OpenStack Train版离线部署|11.2存储节点-Cinder存储服务组件
OpenStack Train版离线部署|11.3控制节点-Cinder存储服务组件
OpenStack Train版离线部署|11.4计算节点-Cinder存储服务组件
OpenStack Train版离线部署|11.5实例使用-Cinder存储服务组件


掘金社区:个性化制作OpenStack镜像|系列教程
个性化制作OpenStack镜像|环境准备
个性化制作OpenStack镜像|Windows7
个性化制作OpenStack镜像|Windows10
个性化制作OpenStack镜像|Linux
个性化制作OpenStack镜像|Windows Server2019


CSDN

CSDN:OpenStack部署系列文章
OpenStack Victoria版 安装部署系列教程
OpenStack Ussuri版 离线安装部署系列教程(全)
OpenStack Train版 离线安装部署系列教程(全)
欢迎留言讨论,期待与你共同进步。


OpenStack Train版离线部署|4控制节点-Glance镜像服务组件

官方参考链接:
OpenStack安装指南:服务组件
glance-install
博客:CentOS7安装OpenStack(Rocky版)-03.安装Glance镜像服务组件(控制节点)
OpenStack Train版-3.安装glance镜像服务

在创建域、角色、域、用户的时候需要注意

一、创建glance相关数据库、凭据与API端点

1.创建glance数据库并授权

使用mysql数据库的root账户登录,密码为控制节点环境准备时初始化mysql数据设置的密码为root。

mysql -u root -proot

创建glance数据库并授权

CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance';

flush privileges;
show databases;
select user,host from mysql.user;
exit

2.创建服务凭据

(1)在keystone上创建glance用户
以下命令在local_user表创建glance用户

cd 
source admin-openrc.sh
openstack user create --domain default --password=glance glance
openstack user list

(2)在keystone上将glance用户添加为service项目的admin角色(权限)
以下命令无输出

openstack role add --project service --user glance admin

(3)创建glance镜像服务的实体
以下命令在service表中增加glance项目

openstack service create --name glance --description "OpenStack Image" image
openstack service list

3.创建镜像服务的 API 端点(endpoint)

【这里会影响API的调用】
以下命令会在endpoint表增加3条项目

openstack endpoint create --region RegionOne image public http://controller:9292
openstack endpoint create --region RegionOne image internal http://controller:9292
openstack endpoint create --region RegionOne image admin http://controller:9292

查看API端点
openstack endpoint list
# 

或者

openstack endpoint create --region RegionOne image public http://192.168.232.101:9292
openstack endpoint create --region RegionOne image internal http://192.168.232.101:9292
openstack endpoint create --region RegionOne image admin http://192.168.232.101:9292
查看API端点
openstack endpoint list
# 

至此,glance在keystone上面注册完成,可以进行安装

二、glance相关软件安装与配置

1.检查Python版本

在安装glance前需要确认系统的Python版本

python --version
Python 2.7.5

2.安装glance软件

yum install openstack-glance python-glance python-glanceclient -y

3.配置文件修改

(1)glance-api.conf

/etc/glance/glance-api.conf
依次执行以下命令,将其写入脚本,执行脚本

cd
touch controller-node-glance-api.conf.sh
vim controller-node-glance-api.conf.sh
bash controller-node-glance-api.conf.sh

controller-node-glance-api.conf.sh文件内容

#!/bin/bash
#controller-node-glance-api.conf.sh
openstack-config --set  /etc/glance/glance-api.conf database connection  mysql+pymysql://glance:glance@controller/glance
openstack-config --set  /etc/glance/glance-api.conf keystone_authtoken www_authenticate_uri http://controller:5000
openstack-config --set  /etc/glance/glance-api.conf keystone_authtoken auth_url http://controller:5000
openstack-config --set  /etc/glance/glance-api.conf keystone_authtoken memcached_servers  controller: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
openstack-config --set  /etc/glance/glance-api.conf paste_deploy flavor keystone
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/
echo "Result of Configuration"
grep '^[a-z]' /etc/glance/glance-api.conf 

bash controller-node-glance-api.conf.sh

(2)glance-registry.conf

/etc/glance/glance-registry.conf
依次执行以下命令,将其写入脚本,执行脚本

cd
touch controller-node-glance-registry.conf.sh
vim controller-node-glance-registry.conf.sh
bash controller-node-glance-registry.conf.sh

controller-node-glance-registry.conf.sh文件内容

#!/bin/bash
#controller-node-glance-registry.conf.sh
openstack-config --set  /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:glance@controller/glance
openstack-config --set  /etc/glance/glance-registry.conf keystone_authtoken www_authenticate_uri http://controller:5000
openstack-config --set  /etc/glance/glance-registry.conf keystone_authtoken auth_url http://controller:5000
openstack-config --set  /etc/glance/glance-registry.conf keystone_authtoken memcached_servers controller: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
openstack-config --set  /etc/glance/glance-registry.conf paste_deploy flavor keystone
echo "Result of Configuration"
grep '^[a-z]' /etc/glance/glance-registry.conf

bash controller-node-glance-registry.conf.sh
至此,glance服务安装完毕,该服务需要启动,而后进行配置

4.同步glance数据库

(1)为glance镜像服务初始化同步数据库
生成的相关表

su -s /bin/sh -c "glance-manage db_sync" glance

忽略输出的内容,最后结果为:Database is synced successfully.

(2)同步完成进行连接测试
保证所有需要的表已经建立,否则后面可能无法进行下去

mysql -uglance -pglance -e "use glance;show tables;"
[root@controller ~]# mysql -uglance -pglance -e "use glance;show tables;"
+----------------------------------+
| Tables_in_glance                 |
+----------------------------------+
| alembic_version                  |
| image_locations                  |
| image_members                    |
| image_properties                 |
| image_tags                       |
| images                           |
| metadef_namespace_resource_types |
| metadef_namespaces               |
| metadef_objects                  |
| metadef_properties               |
| metadef_resource_types           |
| metadef_tags                     |
| migrate_version                  |
| task_info                        |
| tasks                            |
+----------------------------------+
[root@controller ~]#

5.glance镜像服务启动并设置开机自启

systemctl start openstack-glance-api.service openstack-glance-registry.service
systemctl status openstack-glance-api.service openstack-glance-registry.service

systemctl enable openstack-glance-api.service openstack-glance-registry.service
systemctl list-unit-files |grep openstack-glance*

三、验证glance安装正确

1.下载镜像

cd
wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img

2.加载环境变量,获取管理员权限

source admin-openrc.sh

3.上传镜像

使用qcow2磁盘格式, bare容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它

glance image-create --name "cirros-0.4.0" --file ./cirros-0.4.0-x86_64-disk.img  --disk-format qcow2 --container-format bare  --visibility public
openstack image create "cirros-0.3.5"  --file ./cirros-0.3.5-x86_64-disk.img --disk-format qcow2 --container-format bare --public

4.查看镜像

openstack image list
[root@controller ~]# openstack image list
+--------------------------------------+--------------+--------+
| ID                                   | Name         | Status |
+--------------------------------------+--------------+--------+
| 30242f87-ccdb-430d-8a2d-ed66dc9472f5 | cirros-0.3.5 | active |
| af0a9d22-ac12-4b88-adbd-58c4d9869542 | cirros-0.4.0 | active |
+--------------------------------------+--------------+--------+
[root@controller ~]#

至此glance镜像服务安装、启动成功。