The OpenStack Image Service acts as a registry for virtual disk images. Users can add new images or take a snapshot of an image from an existing server for immediate storage. Use snapshots for back up and as templates to launch new servers. You can store registered images in Object Storage or in other locations. For example, you can store images in simple file systems or external web servers.
![]() | Note |
|---|---|
This procedure assumes you set the appropriate environment variables to your credentials as described in the section called “Verify the Identity Service installation”. |
Install the Image Service on the controller node:
# apt-get install glance python-glanceclient
The Image Service stores information about images in a database. The examples in this guide use the MySQL database that is used by other OpenStack services.
Configure the location of the database. The Image Service provides the
glance-apiandglance-registryservices, each with its own configuration file. You must update both configuration files throughout this section. ReplaceGLANCE_DBPASSwith your Image Service database password.Edit
/etc/glance/glance-api.confand/etc/glance/glance-registry.confand edit the[database]section of each file:... [database] connection = mysql://glance:GLANCE_DBPASS@
controller/glanceConfigure the Image Service to use the message broker:
Edit the
/etc/glance/glance-api.conffile and add the following keys to the[DEFAULT]section:Replace
RABBIT_PASSwith the password you chose for theguestaccount in RabbitMQ.[DEFAULT] ... rpc_backend = rabbit rabbit_host =
controllerrabbit_password =RABBIT_PASS
By default, the Ubuntu packages create an SQLite database. Delete the
glance.sqlitefile created in the/var/lib/glance/directory so that it does not get used by mistake:# rm /var/lib/glance/glance.sqlite
Use the password you created to log in as root and create a
glancedatabase user:$ mysql -u root -p mysql> CREATE DATABASE glance; mysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \ IDENTIFIED BY '
GLANCE_DBPASS'; mysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \ IDENTIFIED BY 'GLANCE_DBPASS';Create the database tables for the Image Service:
# su -s /bin/sh -c "glance-manage db_sync" glance
Create a
glanceuser that the Image Service can use to authenticate with the Identity service. Choose a password and specify an email address for theglanceuser. Use theservicetenant and give the user theadminrole:$ keystone user-create --name=glance --pass=
GLANCE_PASS\ --email=[email protected]$ keystone user-role-add --user=glance --tenant=service --role=adminConfigure the Image Service to use the Identity Service for authentication.
Edit the
/etc/glance/glance-api.confand/etc/glance/glance-registry.conffiles. ReplaceGLANCE_PASSwith the password you chose for theglanceuser in the Identity service.Add or modify the following keys under the
[keystone_authtoken]section:[keystone_authtoken] auth_uri = http://
controller:5000 auth_host =controllerauth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = glance admin_password =GLANCE_PASSModify the following key under the
[paste_deploy]section:[paste_deploy] ... flavor = keystone
Register the Image Service with the Identity service so that other OpenStack services can locate it. Register the service and create the endpoint:
$ keystone service-create --name=glance --type=image \ --description="OpenStack Image Service" $ keystone endpoint-create \ --service-id=$(keystone service-list | awk '/ image / {print $2}') \ --publicurl=http://controller:9292 \ --internalurl=http://controller:9292 \ --adminurl=http://controller:9292Restart the
glanceservice with its new settings:# service glance-registry restart # service glance-api restart

![[Note]](../common/images/admon/note.png)
