Install the Image ServiceThe 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.This procedure assumes you set the appropriate environment
variables to your credentials as described in .Install the Image Service on the controller node:#apt-get install glance python-glanceclient#yum install openstack-glance python-glanceclient#zypper install openstack-glance python-glanceclientRespond to prompts for database
management, [keystone_authtoken] settings,
RabbitMQ credentials
and API endpoint
registration. You must also select the caching type: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-api and glance-registry services, each with its own
configuration file. You must update both configuration files
throughout this section. Replace
GLANCE_DBPASS with your Image
Service database password.#openstack-config --set /etc/glance/glance-api.conf database \
connection mysql://glance:GLANCE_DBPASS@controller/glance#openstack-config --set /etc/glance/glance-registry.conf database \
connection mysql://glance:GLANCE_DBPASS@controller/glanceEdit
/etc/glance/glance-api.conf and
/etc/glance/glance-registry.conf and
edit the [database] section of each
file:...
[database]
connection = mysql://glance:GLANCE_DBPASS@controller/glanceConfigure the Image Service to use the message broker:#openstack-config --set /etc/glance/glance-api.conf DEFAULT \
rpc_backend qpid#openstack-config --set /etc/glance/glance-api.conf DEFAULT \
qpid_hostname controllerConfigure the Image Service to use the message broker:Edit the /etc/glance/glance-api.conf
file and add the following keys to the
[DEFAULT] section:Replace RABBIT_PASS with the
password you chose for the guest account in
RabbitMQ.[DEFAULT]
...
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASSConfigure the Image Service to use the message broker:Replace RABBIT_PASS with the password
you chose for the guest account in
RabbitMQ.#openstack-config --set /etc/glance/glance-api.conf DEFAULT \
rpc_backend rabbit#openstack-config --set /etc/glance/glance-api.conf DEFAULT \
rabbit_host controller#openstack-config --set /etc/glance/glance-api.conf DEFAULT \
rabbit_password RABBIT_PASSBy default, the Ubuntu packages create an SQLite database.
Delete the glance.sqlite file created in
the /var/lib/glance/ directory so that it
does not get used by mistake:#rm /var/lib/glance/glance.sqliteUse the password you created to log in as root and create
a glance database user:$mysql -u root -pmysql>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" glanceCreate a glance user that the Image
Service can use to authenticate with the Identity service.
Choose a password and specify an email address for the
glance user. Use the
service tenant and give the user the
admin role:$keystone user-create --name=glance --pass=GLANCE_PASS \
--email=glance@example.com$keystone user-role-add --user=glance --tenant=service --role=adminConfigure the Image Service to use the Identity
Service for authentication.Run the following commands
and replace GLANCE_PASS with the password
you chose for the glance user in the Identity
Service:#openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
auth_uri http://controller:5000#openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
auth_host controller#openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
auth_port 35357#openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
auth_protocol http#openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
admin_tenant_name service#openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
admin_user glance#openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
admin_password GLANCE_PASS#openstack-config --set /etc/glance/glance-api.conf paste_deploy \
flavor keystone#openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
auth_uri http://controller:5000#openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
auth_host controller#openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
auth_port 35357#openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
auth_protocol http#openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
admin_tenant_name service#openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
admin_user glance#openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
admin_password GLANCE_PASS#openstack-config --set /etc/glance/glance-registry.conf paste_deploy \
flavor keystoneEdit the
/etc/glance/glance-api.conf and
/etc/glance/glance-registry.conf files. Replace
GLANCE_PASS with the password you chose
for the glance user in the Identity service.Add or modify the following keys under the
[keystone_authtoken] section:[keystone_authtoken]
auth_uri = http://controller:5000
auth_host = controller
auth_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 = keystoneRegister 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 glance
service with its new settings:#service glance-registry restart#service glance-api restartStart the glance-api and glance-registry services and configure them to
start when the system boots:#service openstack-glance-api start#service openstack-glance-registry start#chkconfig openstack-glance-api on#chkconfig openstack-glance-registry on