• OpenStack实践系列③镜像服务Glance


    OpenStack实践系列③镜像服务Glance

    3.5 Glance部署

    修改glance-api和glance-registry的配置文件,同步数据库

    [root@node1 ~]# vim /etc/glance/glance-api.conf
    538 connection=mysql://glance:glance@192.168.3.199/glance
    
    [root@node1 ~]# vim /etc/glance/glance-registry.conf 
    363 connection=mysql://glance:glance@192.168.3.199/glance
    
    [root@node1 ~]# su -s /bin/sh -c "glance-manage db_sync" glance
    No handlers could be found for logger "oslo_config.cfg"
    /usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py:450: Warning: Duplicate index `ix_image_properties_image_id_name`. This is deprecated and will be disallowed in a future release.
    cursor.execute(statement, parameters)(可以忽略)

    检查导入glance库的表情况

    [root@node1 httpd]# mysql -h192.168.3.199 -uglance -pglance
    MariaDB [(none)]> use glance
    Database changed
    MariaDB [glance]> show tables;
    +----------------------------------+
    | Tables_in_glance |
    +----------------------------------+
    | artifact_blob_locations |
    | artifact_blobs |
    | artifact_dependencies |
    | artifact_properties |
    | artifact_tags |
    | artifacts |
    | 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 |
    +----------------------------------+
    20 rows in set (0.00 sec)

    配置glance连接keystone,对于keystone,每个服务都要有一个用户连接keystone

    [root@node1 ~]# source admin-openrc.sh 
    [root@node1 ~]# openstack user create --domain default --password=glance glance
    +-----------+----------------------------------+
    | Field | Value |
    +-----------+----------------------------------+
    | domain_id | default |
    | enabled | True |
    | id | 8f1bc013d4f04784886c852cd678e756 |
    | name | glance |
    +-----------+----------------------------------+
    [root@node1 ~]# openstack role add --project service --user glance admin

    修改glance-api配置文件,结合keystone和mysql

    # vim /etc/glance/glance-api.conf

    [keystone_authtoken] 部分加入如下配置:

    auth_uri = http://192.168.3.199:5000
    auth_url = http://192.168.3.199:35357
    memcached_servers = 192.168.3.199:11211
    auth_plugin = password
    project_domain_id = default
    user_domain_id = default
    project_name = service
    username = glance
    password = glance

    [paste_deploy] 部分修改:

    flavor=keystone

    [default] 部分修改:

    notification_driver = noop    # 镜像服务不需要使用消息队列
    verbose=True    # 打开debug

    [glance_store] 部分:

    default_store=file    # 镜像存放成文件
    filesystem_store_datadir=/var/lib/glance/images/ # 镜像存放位置

    编辑/etc/glance/glance-registry.conf文件,并完成以下操作:

    verbose=True
    notification_driver = noop

    在[database]部分中,配置数据库访问

    [database]
    ...

    connection=mysql://glance:glance@192.168.3.199/glance

    在[keystone_authtoken]和[paste_deploy]部分,配置认证服务访问

    [keystone_authtoken]
    ...

    auth_uri = http://192.168.3.199:5000
    auth_url = http://192.168.3.199:35357
    memcached_servers = 192.168.3.199:11211
    auth_plugin = password
    project_domain_id = default
    user_domain_id = default
    project_name = service
    username = glance
    password = glance

    [paste_deploy]
    ...

    flavor = keystone

    检查glance修改过的配置

    [root@node1 ~]# grep -n '^[a-z]' /etc/glance/glance-api.conf 
    363:verbose=True
    491:notification_driver = noop
    538:connection=mysql://glance:glance@192.168.3.199/glance
    642:default_store=file
    701:filesystem_store_datadir=/var/lib/glance/images/
    975:auth_uri = http://192.168.3.199:5000
    976:auth_url = http://192.168.3.199:35357
    977:memcached_servers = 192.168.3.199:11211
    978:auth_plugin = password
    979:project_domain_id = default
    980:user_domain_id = default
    981:project_name = service
    982:username = glance
    983:password = glance
    1487:flavor=keystone
    [root@node1 ~]# grep -n '^[a-z]' /etc/glance/glance-registry.conf
    188:verbose=True
    316:notification_driver = noop
    363:connection=mysql://glance:glance@192.168.3.199/glance
    764:auth_uri = http://192.168.3.199:5000
    765:auth_url = http://192.168.3.199:35357
    766:memcached_servers = 192.168.3.199:11211
    767:auth_plugin = password
    768:project_domain_id = default
    769:user_domain_id = default
    770:project_name = service
    771:username = glance
    772:password = glance
    1258:flavor=keystone

    对glance设置开机启动并启动glance服务

    [root@node1 glance]# systemctl enable openstack-glance-api
    Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-glance-api.service to /usr/lib/systemd/system/openstack-glance-api.service.
    [root@node1 glance]# systemctl enable openstack-glance-registry
    Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-glance-registry.service to /usr/lib/systemd/system/openstack-glance-registry.service.
    [root@node1 glance]# systemctl start openstack-glance-api
    [root@node1 glance]# systemctl start openstack-glance-registry

    查看galnce占用端口情况,其中9191是registry占用端口,9292是api占用端口

    [root@node1 glance]# netstat -lntup | egrep '9191|9292'
    tcp 0 0 0.0.0.0:9292 0.0.0.0:* LISTEN 29094/python2 
    tcp 0 0 0.0.0.0:9191 0.0.0.0:* LISTEN 29120/python2

    让glance服务在keystone上注册,才可以允许其他服务调用glance

    [root@node1 ~]# source admin-openrc.sh 
    [root@node1 ~]# openstack service create --name glance --description "OpenStack Image service" image
    +-------------+----------------------------------+
    | Field | Value |
    +-------------+----------------------------------+
    | description | OpenStack Image service |
    | enabled | True |
    | id | 7e931b709a444c13bac5611fb19b9a05 |
    | name | glance |
    | type | image |
    +-------------+----------------------------------+
    
    [root@node1 ~]# openstack endpoint create --region RegionOne image public http://192.168.3.199:9292
    +--------------+----------------------------------+
    | Field | Value |
    +--------------+----------------------------------+
    | enabled | True |
    | id | 4ea9ed1557dc4e548c76cdf0f3d4fbdc |
    | interface | public |
    | region | RegionOne |
    | region_id | RegionOne |
    | service_id | 7e931b709a444c13bac5611fb19b9a05 |
    | service_name | glance |
    | service_type | image |
    | url | http://192.168.3.199:9292 |
    +--------------+----------------------------------+
    
    [root@node1 ~]# openstack endpoint create --region RegionOne image internal http://192.168.3.199:9292
    +--------------+----------------------------------+
    | Field | Value |
    +--------------+----------------------------------+
    | enabled | True |
    | id | cef79d1f235c4fbe9eb2679c101edc15 |
    | interface | internal |
    | region | RegionOne |
    | region_id | RegionOne |
    | service_id | 7e931b709a444c13bac5611fb19b9a05 |
    | service_name | glance |
    | service_type | image |
    | url | http://192.168.3.199:9292 |
    +--------------+----------------------------------+
    
    [root@node1 ~]# openstack endpoint create --region RegionOne image admin http://192.168.3.199:9292
    +--------------+----------------------------------+
    | Field | Value |
    +--------------+----------------------------------+
    | enabled | True |
    | id | b8012edc462a4d82b68b6a138b47cc94 |
    | interface | admin |
    | region | RegionOne |
    | region_id | RegionOne |
    | service_id | 7e931b709a444c13bac5611fb19b9a05 |
    | service_name | glance |
    | service_type | image |
    | url | http://192.168.3.199:9292 |
    +--------------+----------------------------------+

    在admin和demo中加入glance的环境变量,告诉其他服务glance使用的环境变量,一定要在admin-openrc.sh的路径下执行

    [root@node1 ~]# echo "export OS_IMAGE_API_VERSION=2" | tee -a admin-openrc.sh demo-openrc.sh
    export OS_IMAGE_API_VERSION=2
    [root@node1 ~]# tail -1 admin-openrc.sh
    export OS_IMAGE_API_VERSION=2
    [root@node1 ~]# tail -1 demo-openrc.sh 
    export OS_IMAGE_API_VERSION=2

    报错记录:
    [root@node1 ~]# openstack service create --name glance --description "OpenStack Image service" image
    An unexpected error prevented the server from fulfilling your request. (HTTP 500) (Request-ID: req-323c5997-7c34-418e-af7b-8dbb4f4fdd0f)

    解决办法:
    重启keystone相关服务即可
    [root@node1 ~]# systemctl restart httpd.service
    [root@node1 ~]# systemctl restart memcached.service


    如果出现以下情况,表示glance配置成功,由于没有镜像,所以看不到

    [root@node1 ~]# glance image-list
    +----+------+
    | ID | Name |
    +----+------+
    +----+------+

    验证Glance服务操作

    使用CirrOS,一个很小的Linux镜像,可以帮助测试OpenStack部署镜像服务是否正常下载一个镜像,上传镜像到glance,要在上一步所下载的镜像当前目录执行

    [root@node1 ~]# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

    将图像上传至使用QCOW2磁盘格式,因此所有的项目都可以访问它的服务

    [root@node1 ~]# glance image-create --name "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --visibility public --progress
    [=============================>] 100%
    +------------------+--------------------------------------+
    | Property | Value |
    +------------------+--------------------------------------+
    | checksum | ee1eca47dc88f4879d8a229cc70a07c6 |
    | container_format | bare |
    | created_at | 2017-04-26T02:33:15Z |
    | disk_format | qcow2 |
    | id | 447ef14f-5ab2-4a69-af46-cf4331f45967 |
    | min_disk | 0 |
    | min_ram | 0 |
    | name | cirros |
    | owner | 7340dd86a8b14e73ac36b6d6385c689c |
    | protected | False |
    | size | 13287936 |
    | status | active |
    | tags | [] |
    | updated_at | 2017-04-26T02:33:15Z |
    | virtual_size | None |
    | visibility | public |
    +------------------+--------------------------------------+

    查看上传镜像

    [root@node1 ~]# glance image-list
    +--------------------------------------+--------+
    | ID | Name |
    +--------------------------------------+--------+
    | 447ef14f-5ab2-4a69-af46-cf4331f45967 | cirros |
    +--------------------------------------+--------+ 
    [root@node1 ~]# cd /var/lib/glance/images/
    [root@node1 images]# ls
    447ef14f-5ab2-4a69-af46-cf4331f45967 (和image-list中的id一致)
  • 相关阅读:
    查漏补缺:QT入门
    添砖加瓦:设计模式(工厂方法模式)
    Luogu 4784 [BalticOI 2016 Day2]城市
    Luogu 1606 [USACO07FEB]白银莲花池Lilypad Pond
    Luogu 3698 [CQOI2017]小Q的棋盘
    CF547D Mike and Fish
    Luogu 3066 [USACO12DEC]逃跑的BarnRunning Away From…
    Luogu 2403 [SDOI2010]所驼门王的宝藏
    NEERC17 J Journey from Petersburg to Moscow
    Luogu 3350 [ZJOI2016]旅行者
  • 原文地址:https://www.cnblogs.com/reblue520/p/6912893.html
Copyright © 2020-2023  润新知