跳转至

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