Use this procedure to upgrade a basic operational deployment of the following services: Identity (keystone), Image Service (glance), Compute (nova), Networking (neutron), dashboard (horizon), Block Storage (cinder), Orchestration (heat), and Telemetry (ceilometer). This procedure references the basic three-node architecture in the OpenStack Installation Guide. All nodes must run a supported distribution of Linux with a recent kernel and latest Icehouse packages.
The upgrade process interrupts management of your environment including the dashboard. If you properly prepare for the upgrade, existing instances, networking, and storage should continue to operate. However, instances might experience intermittent network interruptions.
Review the release notes before upgrading to learn about new, updated, and deprecated features.
Consider adopting structure and options from Juno service configuration files and merging them with existing configuration files. The OpenStack Configuration Reference contains new, updated, and deprecated options for most services.
For environments using the OpenStack Networking (neutron) service, verify the Icehouse version of the database:
# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \ --config-file /etc/neutron/plugins/ml2/ml2_conf.ini current" neutron INFO [alembic.migration] Context impl MySQLImpl. INFO [alembic.migration] Will assume non-transactional DDL. Current revision for mysql://neutron:XXXXX@controller/neutron: 5ac1c354a051 -> icehouse (head), icehouse
Save the configuration files on all nodes:
# for i in keystone glance nova neutron openstack-dashboard cinder heat ceilometer; \ do mkdir $i-icehouse; \ done # for i in keystone glance nova neutron openstack-dashboard cinder heat ceilometer; \ do cp -r /etc/$i/* $i-icehouse/; \ done
Note | |
---|---|
You can modify this example script on each node to handle different services. |
Back up all databases on the controller:
# mysqldump -u root -p --opt --add-drop-database --all-databases > icehouse-db-backup.sql
Note | |
---|---|
Consider updating your SQL server configuration as described in the OpenStack Installation Guide. |
Complete the following steps on all nodes.
Remove the repository for Icehouse packages.
On Ubuntu, follow these steps:
Add the repository for Juno packages:
# echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" \ "trusty-updates/juno main" > /etc/apt/sources.list.d/cloudarchive-juno.list
Note | |
---|---|
Remove any Ubuntu Cloud archive repositories for Icehouse packages. You might also need to install or update the |
Update the repository database.
On Red Hat Enterprise Linux (RHEL), CentOS, and Fedora, follow these steps:
Remove the repository for Icehouse packages:
# yum erase rdo-release-icehouse
Add the repository for Juno packages:
# yum install http://rdo.fedorapeople.org/openstack-juno/rdo-release-juno.rpm
Update the repository database.
Depending on your specific configuration, upgrading all packages might restart or break services supplemental to your OpenStack environment. For example, if you use the TGT iSCSI framework for Block Storage volumes and the upgrade includes new packages for it, the package manager might restart the TGT iSCSI services and impact connectivity to volumes.
If the package manager prompts you to update configuration files, reject the changes. The package manager appends a suffix to newer versions of configuration files. Consider reviewing and adopting content from these files.
To update a service, you generally modify one or more configuration files, stop the service, synchronize the database schema, and start the service. Some services require different steps. We recommend verifying operation of each service before proceeding to the next service.
All services
These configuration changes apply to all services.
In any file containing the [keystone_authtoken]
section, modify Identity service access to use the identity_uri
option:
1
2
3
|
[keystone_authtoken]
...
identity_uri = http:
//
controller:35357
|
Comment out any auth_host
, auth_port
, and auth_protocol
options because the identity_uri
option replaces them.
In any file containing the auth_uri
option, modify it to explicitly use version 2.0:
1
|
auth_uri = http:
//
controller:5000
/v2
.0
|
Identity service
Edit the /etc/keystone/keystone.conf
file:
In the [token]
section, configure the UUID token provider and SQL driver:
1
2
3
4
|
[token]
...
provider = keystone.token.providers.uuid.Provider
driver = keystone.token.persistence.backends.sql.Token
|
Stop the service.
Clear expired tokens:
# su -s /bin/sh -c "keystone-manage token_flush" keystone
Synchronize the database schema:
# su -s /bin/sh -c "keystone-manage db_sync" keystone
Start the service.
Image Service
Edit the /etc/glance/glance-api.conf
file:
Move the following options from the [DEFAULT]
section to the [glance_store]
section:
default_store
filesystem_store_datadir
Note | |
---|---|
These options must contain values. |
Stop the services.
Synchronize the database schema:
# su -s /bin/sh -c "glance-manage db_sync" glance
Start the services.
Compute service
Edit the /etc/nova/nova.conf
file:
In the [DEFAULT]
section, rename the glance_host
option to host
and move it to the [glance]
section.
In the [DEFAULT]
section, rename the following options and move them to the [neutron]
section:
Old options | New options |
---|---|
neutron_url |
url |
neutron_auth_strategy |
auth_strategy |
neutron_admin_tenant_name |
admin_tenant_name |
neutron_admin_username |
admin_username |
neutron_admin_password |
admin_password |
neutron_admin_auth_url |
admin_auth_url |
service_neutron_metadata_proxy |
service_metadata_proxy |
neutron_metadata_proxy_shared_secret |
metadata_proxy_shared_secret |
Stop the services.
Synchronize the database schema:
# su -s /bin/sh -c "nova-manage db sync" nova
Start the services.
Networking service
Edit the /etc/neutron/neutron.conf
file:
In the [DEFAULT]
section, change the value of the rpc_backend
option:
neutron.openstack.common.rpc.impl_kombu
becomes rabbit
In the [DEFAULT]
section, change the value of the core_plugin
option:
neutron.plugins.ml2.plugin.Ml2Plugin
becomes ml2
In the [DEFAULT]
section, change the value or values of the service_plugins
option to use short names. For example:
neutron.services.l3_router.l3_router_plugin.L3RouterPlugin
becomes router
In the [DEFAULT]
section, explicitly define a value for the nova_region_name
option. For example:
1
2
3
|
[DEFAULT]
...
nova_region_name = regionOne
|
Stop the services.
Synchronize the database schema:
# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \ --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade juno" neutron
Start the services.
Dashboard
In typical environments, updating the dashboard only requires restarting the services.
Restart the services.
Block Storage service
Edit the /etc/cinder/cinder.conf
file:
In the [DEFAULT]
section, add the following option:
1
|
my_ip = controller
|
Stop the services.
Synchronize the database schema:
# su -s /bin/sh -c "cinder-manage db sync" cinder
Start the services.
Orchestration service
Create the heat_stack_owner
role if it does not exist:
# keystone role-create --name heat_stack_owner
Edit the /etc/heat/heat.conf
file:
In the [DEFAULT]
section, change the value of the rpc_backend
option:
heat.openstack.common.rpc.impl_kombu
becomes rabbit
Stop the services.
Synchronize the database schema:
# su -s /bin/sh -c "heat-manage db_sync" heat
Start the services.
Telemetry service
In typical environments, updating the Telemetry service only requires restarting the services.
Restart the services.
Explicitly install the ipset
package if your distribution does not install it as a dependency.
Depending on your specific configuration, upgrading all packages might restart or break services supplemental to your OpenStack environment. For example, if you use the TGT iSCSI framework for Block Storage volumes and the upgrade includes new packages for it, the package manager might restart the TGT iSCSI services and impact access to volumes.
If the package manager prompts you to update configuration files, reject the changes. The package manager appends a suffix to newer versions of configuration files. Consider reviewing and adopting content from these files.
To update a service, you generally modify one or more configuration files, stop the service, synchronize the database schema, and start the service. Some services require different steps. We recommend verifying operation of each service before proceeding to the next service.
All services
These configuration changes apply to all services.
In any file containing the [keystone_authtoken]
section, modify Identity service access to use the identity_uri
option:
1
2
3
|
[keystone_authtoken]
...
identity_uri = http:
//
controller:35357
|
Comment out any auth_host
, auth_port
, and auth_protocol
options because the identity_uri
option replaces them.
In any file containing the auth_uri
option, modify it to explicitly use version 2.0:
1
|
auth_uri = http:
//
controller:5000
/v2
.0
|
Networking service
Edit the /etc/neutron/neutron.conf
file:
In the [DEFAULT]
section, change the value of the rpc_backend
option:
neutron.openstack.common.rpc.impl_kombu
becomes rabbit
In the [DEFAULT]
section, change the value of the core_plugin
option:
neutron.plugins.ml2.plugin.Ml2Plugin
becomes ml2
In the [DEFAULT]
section, change the value or values of the service_plugins
option to use short names. For example:
neutron.services.l3_router.l3_router_plugin.L3RouterPlugin
becomes router
In the [DEFAULT]
section, explicitly define a value for the nova_region_name
option. For example:
1
2
3
|
[DEFAULT]
...
nova_region_name = regionOne
|
In the [database]
section, remove any connection
options because the Networking service uses the message queue instead of direct access to the database.
Restart the services.
Explicitly install the ipset
package if your distribution does not install it as a dependency.
Depending on your specific configuration, upgrading all packages might restart or break services supplemental to your OpenStack environment. For example, if you use the TGT iSCSI framework for Block Storage volumes and the upgrade includes new packages for it, the package manager might restart the TGT iSCSI services and impact access to volumes.
If the package manager prompts you to update configuration files, reject the changes. The package manager appends a suffix to newer versions of configuration files. Consider reviewing and adopting content from these files.
To update a service, you generally modify one or more configuration files, stop the service, synchronize the database schema, and start the service. Some services require different steps. We recommend verifying operation of each service before proceeding to the next service.
All services
These configuration changes apply to all services.
In any file containing the [keystone_authtoken]
section, modify Identity service access to use the identity_uri
option:
1
2
3
|
[keystone_authtoken]
...
identity_uri = http:
//
controller:35357
|
Comment out any auth_host
, auth_port
, and auth_protocol
options because the identity_uri
option replaces them.
In any file containing the auth_uri
option, modify it to explicitly use version 2.0:
1
|
auth_uri = http:
//
controller:5000
/v2
.0
|
Compute service
Edit the /etc/nova/nova.conf
file:
In the [DEFAULT]
section, rename the glance_host
option to host
and move it to the [glance]
section.
In the [DEFAULT]
section, rename the following options and move them to the [neutron]
section:
Old options | New options |
---|---|
neutron_url |
url |
neutron_auth_strategy |
auth_strategy |
neutron_admin_tenant_name |
admin_tenant_name |
neutron_admin_username |
admin_username |
neutron_admin_password |
admin_password |
neutron_admin_auth_url |
admin_auth_url |
service_neutron_metadata_proxy |
service_metadata_proxy |
neutron_metadata_proxy_shared_secret |
metadata_proxy_shared_secret |
In the [database]
section, remove any connection
options because the Compute service uses the message queue instead of direct access to the database.
Restart the services.
Networking service
Edit the /etc/neutron/neutron.conf
file:
In the [DEFAULT]
section, change the value of the rpc_backend
option:
neutron.openstack.common.rpc.impl_kombu
becomes rabbit
In the [DEFAULT]
section, change the value of the core_plugin
option:
neutron.plugins.ml2.plugin.Ml2Plugin
becomes ml2
In the [DEFAULT]
section, change the value or values of the service_plugins
option to use short names. For example:
neutron.services.l3_router.l3_router_plugin.L3RouterPlugin
becomes router
In the [DEFAULT]
section, explicitly define a value for the nova_region_name
option. For example:
1
2
3
|
[DEFAULT]
...
nova_region_name = regionOne
|
In the [database]
section, remove any connection
options because the Networking service uses the message queue instead of direct access to the database.
Restart the services.
Depending on your specific configuration, upgrading all packages might restart or break services supplemental to your OpenStack environment. For example, if you use the TGT iSCSI framework for Block Storage volumes and the upgrade includes new packages for it, the package manager might restart the TGT iSCSI services and impact access to volumes.
If the package manager prompts you to update configuration files, reject the changes. The package manager appends a suffix to newer versions of configuration files. Consider reviewing and adopting content from these files.
To update a service, you generally modify one or more configuration files, stop the service, synchronize the database schema, and start the service. Some services require different steps. We recommend verifying operation of each service before proceeding to the next service.
All services
These configuration changes apply to all services.
In any file containing the [keystone_authtoken]
section, modify Identity service access to use the identity_uri
option:
1
2
3
|
[keystone_authtoken]
...
identity_uri = http:
//
controller:35357
|
Comment out any auth_host
, auth_port
, and auth_protocol
options because the identity_uri
option replaces them.
In any file containing the auth_uri
option, modify it to explicitly use version 2.0:
1
|
auth_uri = http:
//
controller:5000
/v2
.0
|
Block Storage service
In typical environments, updating the Block Storage service only requires restarting the services.
Restart the services.