• openstack搭建8、部署glance镜像服务


    8、部署glance镜像服务
    8.1 配置MariaDB数据库中的glance用户和权限等
    注:由于是集群,所以只要在一个控制节点上创建即可

    [root@controller1:/root]# mysql -uroot -p"123456"
    MariaDB [(none)]> CREATE DATABASE glance;
    Query OK, 1 row affected (0.009 sec)
    
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_szh';
    Query OK, 0 rows affected (0.010 sec)
    
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_szh';
    Query OK, 0 rows affected (0.010 sec)
    
    MariaDB [(none)]> flush privileges;
    MariaDB [(none)]> exit
    Bye

    8.2 创建glance api

    [root@controller1:/root]# source openrc 
    [root@controller1:/root]# openstack user list
    +----------------------------------+--------+
    | ID | Name |
    +----------------------------------+--------+
    | 5b63c4528d2a4147b52dd720a4a387fe | admin |
    | 398fe755d4dd47b6851c6eee63316f13 | myuser |
    +----------------------------------+--------+
    //创建glance用户
    [root@controller1:/root]# openstack user create --domain default --password=glance_szh glance
    +---------------------+----------------------------------+
    | Field | Value |
    +---------------------+----------------------------------+
    | domain_id | default |
    | enabled | True |
    | id | 34c34fe5d78e4f39bfd63f82ad989585 |
    | name | glance |
    | options | {} |
    | password_expires_at | None |
    +---------------------+----------------------------------+
    //glance用户赋权(为glance用户赋予admin权限)
    [root@controller1:/root]# openstack role add --project service --user glance admin
    //创建glacne服务实体
    [root@controller1:/root]# openstack service create --name glance --description "OpenStack Image" image
    +-------------+----------------------------------+
    | Field | Value |
    +-------------+----------------------------------+
    | description | OpenStack Image |
    | enabled | True |
    | id | 369d083b4a094c1fb57e189d54305ea9 |
    | name | glance |
    | type | image |
    +-------------+----------------------------------+
    //创建glance-api 
    注:--region与初始化admin用户时生成的region一致;api地址统一采用VIP,服务类型为image
    [root@controller1:/root]# openstack endpoint create --region RegionOne image public http://VirtualIP:9293
    +--------------+----------------------------------+
    | Field | Value |
    +--------------+----------------------------------+
    | enabled | True |
    | id | 3df1aef87c1a4f069e9742486f200c18 |
    | interface | public |
    | region | RegionOne |
    | region_id | RegionOne |
    | service_id | 369d083b4a094c1fb57e189d54305ea9 |
    | service_name | glance |
    | service_type | image |
    | url | http://VirtualIP:9293 |
    +--------------+----------------------------------+
    [root@controller1:/root]# openstack endpoint create --region RegionOne image internal http://VirtualIP:9293
    +--------------+----------------------------------+
    | Field | Value |
    +--------------+----------------------------------+
    | enabled | True |
    | id | b7b0084313744b8a91a142b1221e0443 |
    | interface | internal |
    | region | RegionOne |
    | region_id | RegionOne |
    | service_id | 369d083b4a094c1fb57e189d54305ea9 |
    | service_name | glance |
    | service_type | image |
    | url | http://VirtualIP:9293 |
    +--------------+----------------------------------+
    
    [root@controller1:/root]# openstack endpoint create --region RegionOne image admin http://VirtualIP:9293
    +--------------+----------------------------------+
    | Field | Value |
    +--------------+----------------------------------+
    | enabled | True |
    | id | e137861e214c46ed898a751db74cb70a |
    | interface | admin |
    | region | RegionOne |
    | region_id | RegionOne |
    | service_id | 369d083b4a094c1fb57e189d54305ea9 |
    | service_name | glance |
    | service_type | image |
    | url | http://VirtualIP:9293 |
    +--------------+----------------------------------+
    [root@controller2:/root]# openstack endpoint list
    +----------------------------------+-----------+--------------+--------------+---------+----
    | ID | Region | Service Name | Service Type | Enabled | Interface | URL |
    +----------------------------------+-----------+--------------+--------------+---------+----
    | 6e109052bb4a5affa30fe3b9e3e5fcc3 | RegionOne | keystone | identity | True | internal | http://VirtualIP:5001/v3/ |
    | 80e4fa83731d5933afe694481b5e0464 | RegionOne | glance | image | True | admin | http://VirtualIP:9293 |
    | 2ddb366df7e95af9af298b5f11774fb4 | RegionOne | keystone | identity | True | admin | http://VirtualIP:5001/v3/ |
    | r592cb41c0bb524c9817633ed1946b45 | RegionOne | keystone | identity | True | public | http://VirtualIP:5001/v3/ |
    | u7b0084313745b8a91a142b1221e0443 | RegionOne | glance | image | True | internal | http://VirtualIP:9293 |
    | pdb2cdadfb7554abad1f216ca719f478 | RegionOne | glance | image | True | public | http://VirtualIP:9293 |
    +----------------------------------+-----------+--------------+--------------+---------+----
    
     

    8.3 安装glance程序

    [root@controller1:/root]# yum install openstack-glance -y
    [root@controller2:/root]# yum install openstack-glance -y
    [root@controller3:/root]# yum install openstack-glance -y
    

    8.3 配置glance-api.conf程序配置文件

    [root@controller1:/root]# cp -p /etc/glance/glance-api.conf{,.bak}
    [root@controller2:/root]# cp -p /etc/glance/glance-api.conf{,.bak}
    [root@controller3:/root]# cp -p /etc/glance/glance-api.conf{,.bak}
    
    [root@controller1:/etc/glance]# vim glance-api.conf
    [DEFAULT]
    enable_v1_api = false
    bind_host = 192.168.110.121
    [database]
    connection = mysql+pymysql://glance:GLANCE_szh@VirtualIP:3307/glance
    [glance_store]
    stores = file,http
    default_store = file
    filesystem_store_datadir = /var/lib/glance/images/
    [keystone_authtoken]
    www_authenticate_uri = http://VirtualIP:5001
    auth_url = http://VirtualIP:5001
    memcached_servers = controller2:11211,controller1:11211,controller3:11211
    auth_type = password
    project_domain_name = Default
    user_domain_name = Default
    project_name = service
    username = glance
    password = glance_szh
    [paste_deploy]
    flavor = keystone
    //注: /var/lib/glance/images是默认的存储目录
    [root@controller2:/root]# vim /etc/glance/glance-api.conf
    [DEFAULT]
    enable_v1_api = false
    bind_host = 192.168.110.122
    [database]
    connection = mysql+pymysql://glance:GLANCE_szh@VirtualIP:3307/glance
    [glance_store]
    stores = file,http
    default_store = file
    filesystem_store_datadir = /var/lib/glance/images/
    [keystone_authtoken]
    www_authenticate_uri = http://VirtualIP:5001
    auth_url = http://VirtualIP:5001
    memcached_servers = controller2:11211,controller1:11211,controller3:11211
    auth_type = password
    project_domain_name = Default
    user_domain_name = Default
    project_name = service
    username = glance
    password = glance_szh
    [paste_deploy]
    flavor = keystone
    
    [root@controller3:/root]# vim /etc/glance/glance-api.conf
    [DEFAULT]
    enable_v1_api = false
    bind_host = 192.168.110.123
    [database]
    connection = mysql+pymysql://glance:GLANCE_szh@VirtualIP:3307/glance
    [glance_store]
    stores = file,http
    default_store = file
    filesystem_store_datadir = /var/lib/glance/images/
    [keystone_authtoken]
    www_authenticate_uri = http://VirtualIP:5001
    auth_url = http://VirtualIP:5001
    memcached_servers = controller2:11211,controller1:11211,controller3:11211
    auth_type = password
    project_domain_name = Default
    user_domain_name = Default
    project_name = service
    username = glance
    password = glance_szh
    [paste_deploy]
    flavor = keystone
    
    //查看[root@controller$:/root]# egrep -v "^#|^$" /etc/glance/glance-api.conf

    8.4 配置glance-registry.conf程序配置文件

    [root@controller1:/root]# cp -p /etc/glance/glance-registry.conf{,.bak}
    [root@controller2:/root]# cp -p /etc/glance/glance-registry.conf{,.bak}
    [root@controller3:/root]# cp -p /etc/glance/glance-registry.conf{,.bak}
    
    [root@controller1:/etc/glance]# vim /etc/glance/glance-registry.conf
    [DEFAULT]
    bind_host = 192.168.110.121
    [database]
    connection = mysql+pymysql://glance:GLANCE_szh@VirtualIP:3307/glance
    [keystone_authtoken]
    www_authenticate_uri = http://VirtualIP:5001
    auth_url = http://VirtualIP:5001
    memcached_servers = controller2:11211,controller1:11211,controller3:11211
    auth_type = password
    project_domain_name = Default
    user_domain_name = Default
    project_name = service
    username = glance
    password = glance_szh
    [paste_deploy]
    flavor = keystone
    
    [root@controller2:/root]# vim /etc/glance/glance-registry.conf
    [DEFAULT]
    bind_host = 192.168.110.122
    [database]
    connection = mysql+pymysql://glance:GLANCE_szh@VirtualIP:3307/glance
    [keystone_authtoken]
    www_authenticate_uri = http://VirtualIP:5001
    auth_url = http://VirtualIP:5001
    memcached_servers = controller2:11211,controller1:11211,controller3:11211
    auth_type = password
    project_domain_name = Default
    user_domain_name = Default
    project_name = service
    username = glance
    password = glance_szh
    [paste_deploy]
    flavor = keystone
    
    [root@controller3:/root]# vim /etc/glance/glance-registry.conf
    [DEFAULT]
    bind_host = 192.168.110.123
    [database]
    connection = mysql+pymysql://glance:GLANCE_szh@VirtualIP:3307/glance
    [keystone_authtoken]
    www_authenticate_uri = http://VirtualIP:5001
    auth_url = http://VirtualIP:5001
    memcached_servers = controller2:11211,controller1:11211,controller3:11211
    auth_type = password
    project_domain_name = Default
    user_domain_name = Default
    project_name = service
    username = glance
    password = glance_szh
    [paste_deploy]
    flavor = keystone
    
    8.5 同步glance数据库(任意控制节点操作即可)
    [root@controller1:/root]# su -s /bin/sh -c "glance-manage db_sync" glance
    /usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py:1352: OsloDBDeprecationWarning: EngineFacade is deprecated; please use oslo_db.sqlalchemy.enginefacade
    expire_on_commit=expire_on_commit, _conf=conf)
    INFO [alembic.runtime.migration] Context impl MySQLImpl.
    INFO [alembic.runtime.migration] Will assume non-transactional DDL.
    /usr/lib/python2.7/site-packages/pymysql/cursors.py:170: Warning: (1280, u"Name 'alembic_version_pkc' ignored for PRIMARY key.")
    result = self._query(query)
    INFO [alembic.runtime.migration] Running upgrade -> liberty, liberty initial
    INFO [alembic.runtime.migration] Running upgrade liberty -> mitaka01, add index on created_at and updated_at columns of 'images' table
    INFO [alembic.runtime.migration] Running upgrade mitaka01 -> mitaka02, update metadef os_nova_server
    INFO [alembic.runtime.migration] Running upgrade mitaka02 -> ocata_expand01, add visibility to images
    INFO [alembic.runtime.migration] Running upgrade ocata_expand01 -> pike_expand01, empty expand for symmetry with pike_contract01
    INFO [alembic.runtime.migration] Running upgrade pike_expand01 -> queens_expand01
    INFO [alembic.runtime.migration] Running upgrade queens_expand01 -> rocky_expand01, add os_hidden column to images table
    INFO [alembic.runtime.migration] Running upgrade rocky_expand01 -> rocky_expand02, add os_hash_algo and os_hash_value columns to images table
    INFO [alembic.runtime.migration] Context impl MySQLImpl.
    INFO [alembic.runtime.migration] Will assume non-transactional DDL.
    Upgraded database to: rocky_expand02, current revision(s): rocky_expand02
    INFO [alembic.runtime.migration] Context impl MySQLImpl.
    INFO [alembic.runtime.migration] Will assume non-transactional DDL.
    INFO [alembic.runtime.migration] Context impl MySQLImpl.
    INFO [alembic.runtime.migration] Will assume non-transactional DDL.
    Database migration is up to date. No migration needed.
    INFO [alembic.runtime.migration] Context impl MySQLImpl.
    INFO [alembic.runtime.migration] Will assume non-transactional DDL.
    INFO [alembic.runtime.migration] Context impl MySQLImpl.
    INFO [alembic.runtime.migration] Will assume non-transactional DDL.
    INFO [alembic.runtime.migration] Running upgrade mitaka02 -> ocata_contract01, remove is_public from images
    INFO [alembic.runtime.migration] Running upgrade ocata_contract01 -> pike_contract01, drop glare artifacts tables
    INFO [alembic.runtime.migration] Running upgrade pike_contract01 -> queens_contract01
    INFO [alembic.runtime.migration] Running upgrade queens_contract01 -> rocky_contract01
    INFO [alembic.runtime.migration] Running upgrade rocky_contract01 -> rocky_contract02
    INFO [alembic.runtime.migration] Context impl MySQLImpl.
    INFO [alembic.runtime.migration] Will assume non-transactional DDL.
    Upgraded database to: rocky_contract02, current revision(s): rocky_contract02
    INFO [alembic.runtime.migration] Context impl MySQLImpl.
    INFO [alembic.runtime.migration] Will assume non-transactional DDL.
    Database is synced successfully.
    
    [root@controller1:/root]# mysql -uroot -p123456
    MariaDB [(none)]> use glance;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    MariaDB [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 |
    +----------------------------------+
    15 rows in set (0.001 sec)
    
    MariaDB [glance]> exit
    Bye
    
     

    8.5 启动glance服务

    [root@controller1:/root]#systemctl enable openstack-glance-api.service openstack-glance-registry.service
    [root@controller1:/root]#systemctl start openstack-glance-api.service openstack-glance-registry.service
    [root@controller1:/root]#systemctl status openstack-glance-api.service openstack-glance-registry.service
    [root@controller2:/root]#systemctl enable openstack-glance-api.service openstack-glance-registry.service
    [root@controller2:/root]#systemctl start openstack-glance-api.service openstack-glance-registry.service
    [root@controller2:/root]#systemctl status openstack-glance-api.service openstack-glance-registry.service
    [root@controller3:/root]#systemctl enable openstack-glance-api.service openstack-glance-registry.service
    [root@controller3:/root]#systemctl start openstack-glance-api.service openstack-glance-registry.service
    [root@controller3:/root]#systemctl status openstack-glance-api.service openstack-glance-registry.service


    8.6 测试镜像

    [root@controller1:/root]# cd /var/lib/glance/images/
    [root@controller1:/var/lib/glance/images]# openstack image list
    
    [root@controller1:/var/lib/glance/images]# ls
    [root@controller1:/var/lib/glance/images]# glance image-list
    +----+------+
    | ID | Name |
    +----+------+
    +----+------+
    [root@controller1:/var/lib/glance/images]# cd
    [root@controller1:/root]# wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
    [root@controller1:/root]# ls
    admin-openrc anaconda-ks.cfg cirros-0.4.0-x86_64-disk.img demo-openrc get-pip.py openrc
    [root@controller1:/root]# openstack image create "cirros" 
    > --file /root/cirros-0.4.0-x86_64-disk.img 
    > --disk-format qcow2 --container-format bare 
    > --public
    [root@controller1:/root]# openstack image list
    +--------------------------------------+--------+--------+
    | ID | Name | Status |
    +--------------------------------------+--------+--------+
    | f9a81ha1-ag98-1247-9174-s9419fns1c4b | cirros | active |
    +--------------------------------------+--------+--------+
    [root@controller1:/root]# glance image-list
    +--------------------------------------+--------+
    | ID | Name |
    +--------------------------------------+--------+
    | f9a81ha1-ag98-1247-9174-s9419fns1c4b | cirros |
    +--------------------------------------+--------+
    
     

    8.7 设置PCS资源

    [root@controller1:/root]# pcs resource create openstack-glance-api systemd:openstack-glance-api --clone interleave=true
    [root@controller1:/root]# pcs resource create openstack-glance-registry systemd:openstack-glance-registry --clone interleave=true
    [root@controller1:/root]# pcs resource
    VirtualIP (ocf::heartbeat:IPaddr2): Started controller1
    Clone Set: openstack-glance-api-clone [openstack-glance-api]
    Started: [ controller1 controller2 controller3 ]
    Clone Set: openstack-glance-registry-clone [openstack-glance-registry]
    Started: [ controller1 controller2 controller3 ]
  • 相关阅读:
    线程间的通信
    不用加减乘除做加法
    关键字throw(something)限制
    C++ 中的“ !” 运算
    n个骰子的点数
    State 模式
    Strategy 模式
    构造函数为什么不能是虚函数 ( 转载自C/C++程序员之家)
    n个骰子的点数
    和为S的两个数字
  • 原文地址:https://www.cnblogs.com/tartarush/p/14308191.html
Copyright © 2020-2023  润新知