Openstack uses the placement-service for tracking internal resources. From Newton it was an integrated part of Nova, and from Stein it can be deployed as its own service. From train it have to be its own service, so we need to install the stand-alone placement service before we can upgrade to train. This article will guide you through this process

Make sure to have recent enough versions of our puppet-repositories.


Install placement API servers

The placement needs a couple of new hiera-values:

# This password should be the same as "ntnuopenstack::nova::placement::keystone::password"
ntnuopenstack::placement::keystone::password:

ntnuopenstack::placement::mysql::password:

It is probably also useful to make one of the new placement-servers also sync the DB; so let the following key into one of the node-files:

ntnuopenstack::placement::db::sync̈́: true

Create a couple of infra-VM's and install the puppet-role role::openstack::placement and make sure these machines get the following keys in their node-specific hiera:

apache::mod::wsgi::package_name: 'libapache2-mod-wsgi-py3'
apache::mod::wsgi::mod_path: '/usr/lib/apache2/modules/mod_wsgi.so'

Prepare the migration of data

Download the migration-script, and create a config-file for it on one of the placement hosts:

# wget https://opendev.org/openstack/placement/raw/branch/master/placement_db_tools/mysql-migrate-db.sh
# ./mysql-migrate-db.sh --mkconfig migrateconfig.tc
Wrote /root/migrateconfig.tc

Populate the config-file with relevant values. Install mariadb-client.

Migrate data from nova-placement to the new placement service

The following list helps you to actually perform the migration. This procedure WILL make downtime for your nova-API's, so it have to be done in a maintainance-period.

  1. Stop puppet and apache2 on all novaapi-servers
  2. Run the migration # ./mysql-migrate-db.sh --migrate migrateconfig.tc
  3. Set the key in hiera which tells our infrastructure that the new placement-service should be used, and make sure to give puppet a run on the adminlb's.
    1. ntnuopenstack::placement::standalone: true
  4. Re-start apache2 on novaapi-servers.




  • No labels