安装和配置 (Debian)¶
本节描述了如何在控制器节点上安装和配置镜像服务,代号为 glance。为了简单起见,此配置将镜像存储在本地文件系统上。
先决条件¶
在安装和配置镜像服务之前,您必须创建数据库、服务凭证和 API 端点。
要创建数据库,请完成以下步骤
使用数据库访问客户端以
root用户身份连接到数据库服务器$ mysql -u root -p
创建
glance数据库MariaDB [(none)]> CREATE DATABASE glance;授予
glance数据库适当的访问权限MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \ IDENTIFIED BY 'GLANCE_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \ IDENTIFIED BY 'GLANCE_DBPASS';
将
GLANCE_DBPASS替换为合适的密码。退出数据库访问客户端。
激活
admin凭证以访问仅管理员可用的 CLI 命令$ . admin-openrc
要创建服务凭证,请完成以下步骤
创建
glance用户$ openstack user create --domain default --password-prompt glance User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | 3f4e777c4062483ab8d9edd7dff829df | | name | glance | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+
将
admin角色添加到glance用户和service项目$ openstack role add --project service --user glance admin
注意
此命令不会产生任何输出。
创建
glance服务实体$ openstack service create --name glance \ --description "OpenStack Image" image +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Image | | enabled | True | | id | 8c2c7f1b9b5049ea9e63757b5533e6d2 | | name | glance | | type | image | +-------------+----------------------------------+
创建镜像服务 API 端点
$ openstack endpoint create --region RegionOne \ image public http://controller:9292 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 340be3625e9b4239a6415d034e98aace | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 8c2c7f1b9b5049ea9e63757b5533e6d2 | | service_name | glance | | service_type | image | | url | http://controller:9292 | +--------------+----------------------------------+ $ openstack endpoint create --region RegionOne \ image internal http://controller:9292 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | a6e4b153c2ae4c919eccfdbb7dceb5d2 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 8c2c7f1b9b5049ea9e63757b5533e6d2 | | service_name | glance | | service_type | image | | url | http://controller:9292 | +--------------+----------------------------------+ $ openstack endpoint create --region RegionOne \ image admin http://controller:9292 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 0c37ed58103f4300a84ff125a539032d | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 8c2c7f1b9b5049ea9e63757b5533e6d2 | | service_name | glance | | service_type | image | | url | http://controller:9292 | +--------------+----------------------------------+
注册配额限制 (可选)
如果您决定在 Glance 中使用按租户的配额,则必须先在 Keystone 中注册这些限制
$ openstack --os-cloud devstack-system-admin registered limit create \ --service glance --default-limit 1000 --region RegionOne image_size_total +---------------+----------------------------------+ | Field | Value | +---------------+----------------------------------+ | default_limit | 1000 | | description | None | | id | 9cedfc5de80345a9b13ed00c2b5460f2 | | region_id | RegionOne | | resource_name | image_size_total | | service_id | e38c84a2487f49fd9864193bdc8a3174 | +---------------+----------------------------------+ $ openstack --os-cloud devstack-system-admin registered limit create \ --service glance --default-limit 1000 --region RegionOne image_stage_total +---------------+----------------------------------+ | Field | Value | +---------------+----------------------------------+ | default_limit | 1000 | | description | None | | id | 5a68712b6ba6496d823d0c66e5e860b9 | | region_id | RegionOne | | resource_name | image_stage_total | | service_id | e38c84a2487f49fd9864193bdc8a3174 | +---------------+----------------------------------+ $ openstack --os-cloud devstack-system-admin registered limit create \ --service glance --default-limit 100 --region RegionOne image_count_total +---------------+----------------------------------+ | Field | Value | +---------------+----------------------------------+ | default_limit | 100 | | description | None | | id | beb91b043296499f8e6268f29d8b2749 | | region_id | RegionOne | | resource_name | image_count_total | | service_id | e38c84a2487f49fd9864193bdc8a3174 | +---------------+----------------------------------+ $ openstack --os-cloud devstack-system-admin registered limit create \ --service glance --default-limit 100 --region RegionOne \ image_count_uploading +---------------+----------------------------------+ | Field | Value | +---------------+----------------------------------+ | default_limit | 100 | | description | None | | id | fc29649c047a45bf9bc03ec4a7bcb8af | | region_id | RegionOne | | resource_name | image_count_uploading | | service_id | e38c84a2487f49fd9864193bdc8a3174 | +---------------+----------------------------------+
请确保在您的
glance-api.conf文件中也设置use_keystone_limits=True。
安装和配置组件¶
注意
默认配置文件因发行版而异。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。此外,配置片段中的省略号 (...) 表示您应该保留的潜在默认配置选项。
安装软件包
# apt install glance
编辑
/etc/glance/glance-api.conf文件并完成以下操作在
[database]部分,配置数据库访问[database] # ... connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
将
GLANCE_DBPASS替换为您为镜像服务数据库选择的密码。在
[keystone_authtoken]和[paste_deploy]部分中,配置身份服务访问[keystone_authtoken] # ... www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = glance password = GLANCE_PASS [paste_deploy] # ... flavor = keystone
将
GLANCE_PASS替换为您在身份服务中为glance用户选择的密码。注意
注释掉或删除
[keystone_authtoken]部分中的任何其他选项。在
[glance_store]部分中,配置本地文件系统存储和镜像文件位置[DEFAULT] # ... enabled_backends=fs:file [glance_store] # ... default_backend = fs [fs] filesystem_store_datadir = /var/lib/glance/images/
在
[oslo_limit]部分中,配置对 keystone 的访问[oslo_limit] auth_url = http://controller:5000 auth_type = password user_domain_id = default username = glance system_scope = all password = GLANCE_PASS endpoint_id = ENDPOINT_ID region_name = RegionOne
将
GLANCE_PASS替换为您在身份服务中为glance用户选择的密码。将 ENDPOINT_ID 替换为您之前创建的镜像端点的 ID(在本例中,这将是 340be3625e9b4239a6415d034e98aace),您可以通过运行以下命令找到它
$ openstack endpoint list --service glance --region RegionOne
确保 glance 帐户具有对系统范围资源的读取访问权限(例如限制)
$ openstack role add --user glance --user-domain Default --system all reader
有关配置统一限制客户端的更多信息,请参阅 oslo_limit 文档。
在
[DEFAULT]部分中,可选地启用按租户的配额[DEFAULT] use_keystone_limits = True
请注意,如果启用了此功能,则必须创建上面描述的已注册限制。
填充镜像服务数据库
# su -s /bin/sh -c "glance-manage db_sync" glance
注意
忽略此输出中的任何弃用消息。
完成安装¶
重新启动镜像服务
# service glance-api restart