5. 安装镜像服务glance¶
0. glance介绍¶
# 镜像服务允许用户查询、上传和下载虚拟机镜像
# 组件介绍:
glance-api:接收镜像api的调用,诸如镜像发现、恢复、存储
glangce-registry:存储、处理和恢复镜像的元数据,元数据包括大小和类型。
openstack服务通用安装步骤¶
## 1.数据库创库授权
## 2.在keystone创建系统用户关联角色
## 3.在keystone创建服务,注册api
## 4.安装相应服务软件包
## 5.修改相应服务的配置文件
## 6.同步数据库
## 7.启动服务
1.数据库创库授权¶
1. 登录数据库¶
#controller
mysql
2. 创建glance数据库¶
CREATE DATABASE glance;
3. 给用户授权(创建用户名密码)¶
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';
2.在keystone创建系统用户关联角色¶
1. 生成环境变量¶
#执行脚本,生成环境变量
#没有环境变量的话,后面的命令执行不了!
source admin-openrc
[root@controller ~]# env|grep OS
HOSTNAME=controller
[root@controller ~]# ls
admin-openrc anaconda-ks.cfg
[root@controller ~]# source admin-openrc
[root@controller ~]# env|grep OS
HOSTNAME=controller
OS_USER_DOMAIN_NAME=default
OS_IMAGE_API_VERSION=2
OS_PROJECT_NAME=admin
OS_IDENTITY_API_VERSION=3
OS_PASSWORD=ADMIN_PASS
OS_AUTH_URL=http://controller:35357/v3
OS_USERNAME=admin
OS_PROJECT_DOMAIN_NAME=default
2. 在keystone创建glance用户关联角色¶
openstack user create --domain default --password GLANCE_PASS glance
openstack role add --project service --user glance admin
3.在keystone创建服务,注册api¶
#1.创建服务
openstack service create --name glance --description "OpenStack Image" image
#2.注册api
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
#3.查看服务
openstack service list
[root@controller ~]# openstack service list
+----------------------------------+----------+----------+
| ID | Name | Type |
+----------------------------------+----------+----------+
| 51f14d69bcab4d6982ff856d1986669f | glance | image |
| a538eedaa2364bd5904e24ed2cce0928 | keystone | identity |
+----------------------------------+----------+----------+
4.安装相应服务软件包¶
# 安装glance
yum install openstack-glance -y
5.修改相应服务的配置文件¶
1. 修改glance-api.conf配置文件¶
#1.备份配置文件
cp /etc/glance/glance-api.conf{,.bak}
#2.生成不带注释的配置文件
grep '^[a-Z\[]' /etc/glance/glance-api.conf.bak >/etc/glance/glance-api.conf
#3.修改配置文件
openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@controller/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:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://controller:35357
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_PASS
openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone
#4.md5校验(得到的值与老师的值一致,说明成功!)
md5sum /etc/glance/glance-api.conf
[root@controller ~]# cat -n /etc/glance/glance-api.conf
1 [DEFAULT]
2 [cors]
3 [cors.subdomain]
4 [database]
5 connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
6 [glance_store]
7 stores = file,http
8 default_store = file
9 filesystem_store_datadir = /var/lib/glance/images/
10 [image_format]
11 [keystone_authtoken]
12 auth_uri = http://controller:5000
13 auth_url = http://controller:35357
14 memcached_servers = controller:11211
15 auth_type = password
16 project_domain_name = default
17 user_domain_name = default
18 project_name = service
19 username = glance
20 password = GLANCE_PASS
21 [matchmaker_redis]
22 [oslo_concurrency]
23 [oslo_messaging_amqp]
24 [oslo_messaging_notifications]
25 [oslo_messaging_rabbit]
26 [oslo_policy]
27 [paste_deploy]
28 flavor = keystone
29 [profiler]
30 [store_type_location_strategy]
31 [task]
32 [taskflow_executor]
[root@controller ~]#
[root@controller ~]# md5sum /etc/glance/glance-api.conf
3e1a4234c133eda11b413788e001cba3 /etc/glance/glance-api.conf
2. glance-registry.conf¶
#1.备份配置文件
cp /etc/glance/glance-registry.conf{,.bak}
#2.去掉注释
grep '^[a-Z\[]' /etc/glance/glance-registry.conf.bak > /etc/glance/glance-registry.conf
#3.修改配置文件
openstack-config --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://controller:35357
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_PASS
openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
#4.md5校验(得到的值与老师的值一致,说明成功!)
md5sum /etc/glance/glance-registry.conf
[root@controller ~]# cat -n /etc/glance/glance-registry.conf
1 [DEFAULT]
2 [database]
3 connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
4 [glance_store]
5 [keystone_authtoken]
6 auth_uri = http://controller:5000
7 auth_url = http://controller:35357
8 memcached_servers = controller:11211
9 auth_type = password
10 project_domain_name = default
11 user_domain_name = default
12 project_name = service
13 username = glance
14 password = GLANCE_PASS
15 [matchmaker_redis]
16 [oslo_messaging_amqp]
17 [oslo_messaging_notifications]
18 [oslo_messaging_rabbit]
19 [oslo_policy]
20 [paste_deploy]
21 flavor = keystone
22 [profiler]
[root@controller ~]#
[root@controller ~]# md5sum /etc/glance/glance-registry.conf
46acabd81a65b924256f56fe34d90b8f /etc/glance/glance-registry.conf
6.同步数据库¶
#1.同步数据库
su -s /bin/sh -c "glance-manage db_sync" glance
#2.查看同步是否成功
mysql glance -e "show tables;"
7.启动服务¶
1. 启动服务并开机自启¶
systemctl enable openstack-glance-api.service openstack-glance-registry.service
systemctl start openstack-glance-api.service openstack-glance-registry.service
[root@controller ~]# netstat -tunlp|grep python2
tcp 0 0 0.0.0.0:9292 0.0.0.0:* LISTEN 46644/python2
tcp 0 0 0.0.0.0:9191 0.0.0.0:* LISTEN 46645/python2
2. 验证¶
#1.从老师课件中找到镜像文件,然后上传到controller宿主机
cirros-0.3.4-x86_64-disk.img
#2.创建镜像
openstack image create "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare \
--public
#3.查看是否创建成功
[root@controller ~]# ll -h
total 13M
-rw-r--r-- 1 root root 266 Dec 2 06:53 admin-openrc
-rw-------. 1 root root 1.5K Aug 9 2018 anaconda-ks.cfg
-rw-r--r-- 1 root root 13M Dec 3 09:06 cirros-0.3.4-x86_64-disk.img
[root@controller ~]# openstack image create "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare \
> --public
+------------------+------------------------------------------------------+
| Field | Value |
+------------------+------------------------------------------------------+
| checksum | ee1eca47dc88f4879d8a229cc70a07c6 |
| container_format | bare |
| created_at | 2021-12-03T01:08:47Z |
| disk_format | qcow2 |
| file | /v2/images/9b28c8ce-64d0-40b0-b4ef-61ab38f26d25/file |
| id | 9b28c8ce-64d0-40b0-b4ef-61ab38f26d25 |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros |
| owner | ddd5154c1a8e46a386f93acfe53c57fd |
| protected | False |
| schema | /v2/schemas/image |
| size | 13287936 |
| status | active |
| tags | |
| updated_at | 2021-12-03T01:08:47Z |
| virtual_size | None |
| visibility | public |
+------------------+------------------------------------------------------+
[root@controller ~]# ll -h /var/lib/glance/images/
total 13M
-rw-r----- 1 glance glance 13M Dec 3 09:08 9b28c8ce-64d0-40b0-b4ef-61ab38f26d25
最后更新:
2022-02-20 04:00:12