Skip to content

11 - Setup Glance

Published: at 08:28 PMSuggest Changes

This post is part of the Manual Deployment Openstack HA and Ceph series.

Setup Database (Exec on controller-01)

1. Create mysql database for glance

mysql
CREATE DATABASE glance;

2. Grant glance user for any host access

GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance!dama';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance!dama';
FLUSH PRIVILEGES;
EXIT;

Setup Openstack Endpoint (Exec on controller-01)

1. Create glance user in OpenStack

source ~/admin-openrc
openstack user create --domain default --password 'glance!dama' glance

2. Grant admin role for glance user

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

3. Create glance service in openstack

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

4. Create glance public, internal and admin endpoint

openstack endpoint create --region java \
  image public http://public.java.dama.id:9292
openstack endpoint create --region java \
  image internal http://internal.java.dama.id:9292
openstack endpoint create --region java \
  image admin http://admin.java.dama.id:9292

Install and Configure Glance (Exec on all Controller Nodes)

1. Install glance packages

apt install -y glance

2. Modify glance configuration

vi /etc/glance/glance-api.conf

[DEFAULT]
debug = False
bind_host = 10.10.10.1X
workers = 5
enabled_backends = file:file, http:http, rbd:rbd, cinder:cinder
transport_url = rabbit://openstack:rabbit!dama@10.10.10.11:5672,openstack:rabbit!dama@10.10.10.12:5672,openstack:rabbit!dama@10.10.10.13:5672//
[cinder]
[cors]

[database]
connection = mysql+pymysql://glance:glance!dama@10.10.10.100/glance
max_retries = -1

[glance_store]
default_backend = rbd
stores = rbd
default_store = rbd
rbd_store_pool = images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf
rbd_store_chunk_size = 8

[rbd]
rbd_store_user = glance
rbd_store_pool = images
rbd_store_chunk_size = 8

[file]
filesystem_store_datadir = /var/lib/glance/images/

[glance.store.rbd.store]
rbd_store_user = glance
rbd_store_pool = images
rbd_store_chunk_size = 8

[image_format]
disk_formats = ami,ari,aki,vhd,vhdx,vmdk,raw,qcow2,vdi,iso,ploop.root-tar

[keystone_authtoken]
www_authenticate_uri = http://internal.java.dama.id:5000
auth_url = http://internal.java.dama.id:5000
memcached_servers = 10.10.10.11:11211,10.10.10.12:11211,10.10.10.13:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = glance!dama

[os_glance_tasks_store]
filesystem_store_datadir = /var/lib/glance/tasks_work_dir

[os_glance_staging_store]
filesystem_store_datadir = /var/lib/glance/staging

[oslo_middleware]
enable_proxy_headers_parsing = True

[paste_deploy]
flavor = keystone


[oslo_concurrency]
[oslo_messaging_amqp]
[oslo_messaging_kafka]

[oslo_messaging_notifications]
transport_url = rabbit://openstack:rabbit!dama@10.10.10.11:5672,openstack:rabbit!dama@10.10.10.12:5672,openstack:rabbit!dama@10.10.10.13:5672//
driver = noop

[oslo_messaging_rabbit]
[oslo_policy]


[profiler]
[store_type_location_strategy]
[task]
[taskflow_executor]

3. Add haproxy configuration

vi /etc/haproxy/haproxy.cfg
...
# GLANCE
listen glance_api_cluster
  bind 10.10.10.100:9292
  bind 202.10.10.100:9292
  balance  source
  option  tcpka
  option  httpchk
  option  tcplog
    server os-controller-01 10.10.10.11:9292 check inter 2000 rise 2 fall 5
    server os-controller-02 10.10.10.12:9292 check inter 2000 rise 2 fall 5
    server os-controller-03 10.10.10.13:9292 check inter 2000 rise 2 fall 5

Populate Glance Database (Exec on Controller-01)

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

Restart and enable Glance Service (Exec on all controller nodes)

1. Restart and enable service

systemctl restart glance-api 
systemctl enable glance-api
systemctl status glance-api

2. Restart haproxy with pcs

pcs resource restart lb-haproxy

3. Verify glance port listen

ss -l '( sport = :9292 )'

Previous Post
13 - Create ceph libvirt secret
Next Post
10 - Setup Keystone