OpenStack Glance

Сервис, отвечающий за управление образами. В нашем сетапе бэкендом будет CEPH, но в остальном сильно от документации отходить не будем.

Регистрация сервиса в keystone

Не забываем сделать БД под glance и либо сделать пользователя, либо дать доступ уже существующему. После этого создаём в keystone новый сервис

# openstack user create --domain owlhost --password-prompt glance

В пароль вводим GLANCE_PASS из таблички. Теперь добавляем роль админа для пользователя glance

# openstack role add --project service --user glance admin

Теперь создаём сервис, который будет отвечать за образы

# openstack service create --name glance --description "OpenStack Image" image

И финальным аккордом заводим эндпоинты для работы с сервисом:

# openstack endpoint create --region RegionOne image public http://mgt1.cloud.ow1.in:9292
# openstack endpoint create --region RegionOne image internal http://mgt1.cloud.ow1.in:9292
# openstack endpoint create --region RegionOne image admin http://mgt1.cloud.ow1.in:9292

Установка запчастей

Ничего необычного

# yum install openstack-glance

Настройка Glance

Для работы нам понадобится настроить два конфига:

glance-api.conf
[database]
connection = postgresql://openstack:DBPASS@mgt1.cloud.ow1.in/glance
 
[keystone_authtoken]
www_authenticate_uri  = http://mgt1.cloud.ow1.in:5000
auth_url = http://mgt1.cloud.ow1.in:5000
memcached_servers = mgt1.cloud.ow1.in:11211
auth_type = password
project_domain_name = owlhost
user_domain_name = owlhost
project_name = service
username = glance
password = GLANCE_PASS
 
[paste_deploy]
flavor = keystone
 
[glance_store]
stores = rbd
default_store = rbd
rbd_store_pool = images
rbd_store_user = openstack
rbd_store_ceph_conf = /etc/ceph/ceph.conf
rbd_store_chunk_size = 8
/etc/glance/glance-registry.conf
[database]
connection = postgresql://openstack:DBPASS@mgt1.cloud.ow1.in/glance
 
[keystone_authtoken]
www_authenticate_uri  = http://mgt1.cloud.ow1.in:5000
auth_url = http://mgt1.cloud.ow1.in:5000
memcached_servers = mgt1.cloud.ow1.in:11211
auth_type = password
project_domain_name = owlhost
user_domain_name = owlhost
project_name = service
username = glance
password = GLANCE_PASS
 
[paste_deploy]
flavor = keystone

И заключительным штрихом, если всё правильно настроено, нужно прогнать миграшки сервиса

# su -s /bin/sh -c "glance-manage db_sync" glance

Проверка

Если ещё не запустили, то самое время стартануть сервисы glance

# systemctl start openstack-glance-api openstack-glance-registry
# systemctl enable openstack-glance-api openstack-glance-registry

Теперь берём любой самый простой образ с интернетов1)

$ wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img

И пробуем его закатить в свежесозданный сервис:

# openstack image create 'cirros' --file cirros-0.4.0-x86_64-disk.img --disk-format qcow2 --container-format bare --public

Если всё прошло хорошо - выедет большая портянка с метаданными по загруженному образу. Чтобы окончательно убедиться - можно с помощью rbd проверить что же у нас лежит в CEPH:

# rbd ls -p images -n client.openstack

Должен быть один файлик с таким же uuid, который мы получили в метадате.

1)
например цирроз дня