These instructions will help you set up a new Nova environment running Juno, operating as a distinct region from your existing Icehouse Nova environment.
On the system acting as your Nova API server, you will need:
python-novaclient
openstack-nova-common
openstack-nova-conductor
openstack-nova-novncproxy
openstack-nova-api
python-nova
openstack-nova-cert
openstack-nova-console
openstack-nova-scheduler
On the system(s) acting as your Nova compute servers, you will need:
openstack-nova-common
openstack-nova-compute
python-neutron
openstack-neutron
python-neutronclient
python-novaclient
python-nova
openstack-neutron-openvswitch
bridge-utils
The new Juno Nova environment will need to use a distinct database
from the one your existing Icehouse Nova environment is using.
On a system where you have administrative access to your SQL server,
create a new database. This document assumes you've used the name
nova_juno
. Using mysql or mariadb, the commands to create the new
database would be something like:
mysql> create database nova_juno;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on nova_juno.* to nova@'%';
Query OK, 0 rows affected (0.00 sec)
Start by replacing /etc/nova
on your Havana Nova controller with the
contents of /etc/nova
from your Grizzly controller. You will need
to make several changes to /etc/nova/nova.conf
:
-
Update
sql_connection
to point to the database we just created. If you old configuration looked like this:sql_connection = mysql://[email protected]/nova
The new configuration should look like this:
sql_connection = mysql://[email protected]/nova_juno
-
Update
metadata_host
to point at your new Havana controller. -
On your compute nodes, make sure that the following settings all point to the address of the local compute node:
vncserver_proxyclient_address
novncproxy_base_url
vncserver_listen
-
You need to change the message topics used by Nova when communicating via the AMQP server. Add the following to the
[DEFAULT]
section ofnova.conf
:cert_topic=cert_juno compute_topic=compute_juno console_topic=console_juno consoleauth_topic=consoleauth_juno notifications_topic=notifications_juno scheduler_topic=scheduler_juno
And add the following to the
[conductor]
section ofnova.conf
(you will probably have to add this section):[conductor] conductor_topic=conductor_juno
-
Make sure that the following services are enabled and running:
openvswitch
messagebus
libvirtd
That is, for each service run
chkconfig <service> on
followed byservice <service> start
.
-
Start OpenStack services on the Juno controller:
# openstack-service start
-
Start OpenStack services on the Juno compute nodes:
# openstack-service start
-
Verify that the new compute service has registered itself properly with the Juno controller. Run the following with Nova administrative credentials:
# nova service-list
You should see entries for:
- `nova-conductor` - `nova-consoleauth` - `nova-cert` - `nova-scheduler`
As well as one
nova-compute
entry for each Juno compute node.
-
Register your new controller with Keystone in a separate region. First, find the service id for the
compute
service:$ keystone service-get nova +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Openstack Compute Service | | id | befb024666424084b37a84ed5ee1143b | | name | nova | | type | compute | +-------------+----------------------------------+
-
Assuming that your Nova API host is 192.168.122.198 and you would like to call the new region
Juno
, create a new endpoint with the following command:$ keystone endpoint-create --region Juno \ --service-id befb024666424084b37a84ed5ee1143b \ --publicurl http://192.168.122.198:8774/v2/%(tenant_id)s \ --adminurl http://192.168.122.198:8774/v2/%(tenant_id)s \ --internalurl http://192.168.122.198:8774/v2/%(tenant_id)s
-
If you will need volume attachment to work in your Juno environment, create a new endpoint for the Cinder service in your new region.
$ keystone service-get cinder ... $ keystone endpoint-list ... $ keystone endpoint-create --region Juno \ --service-id 1a6f2343a6f14bc9b5a2c2f4e4a894ca \ --publicurl 'http://192.168.122.110:8776/v1/%(tenant_id)s' \ --adminurl 'http://192.168.122.110:8776/v1/%(tenant_id)s' \ --internalurl 'http://192.168.122.110:8776/v1/%(tenant_id)s'
-
Verify that you can communicate with the new region. After loading appropriate keystone credentials, run:
$ nova --os-region-name Juno host-list
You should see output listing your new Havana Nova hosts. For example:
+-------------------------------------------+----------------+----------+ | host_name | service | zone | +-------------------------------------------+----------------+----------+ | rdo-juno-nova-api-net0.default.virt | cert | internal | | rdo-juno-nova-api-net0.default.virt | conductor | internal | | rdo-juno-nova-api-net0.default.virt | consoleauth | internal | | rdo-juno-nova-api-net0.default.virt | scheduler | internal | | rdo-juno-nova-compute-net0.default.virt | compute_juno | internal | +-------------------------------------------+----------------+----------+