Compute is a collection of services that enable you to launch virtual machine instances. You can configure these services to run on separate nodes or the same node. In this guide, most services run on the controller node and the service that launches virtual machines runs on a dedicated compute node. This section shows you how to install and configure these services on the controller node.
Install the Compute packages necessary for the controller node.
# apt-get install nova-api nova-cert nova-conductor nova-consoleauth \ nova-novncproxy nova-scheduler python-novaclient
Compute stores information in a database. In this guide, we use a MySQL database on the controller node. Configure Compute with the database location and credentials. Replace
NOVA_DBPASS
with the password for the database that you will create in a later step.Edit the
[database]
section in the/etc/nova/nova.conf
file, adding it if necessary, to modify this key:[database] connection = mysql://nova:
NOVA_DBPASS
@controller/novaConfigure the Compute service to use the RabbitMQ message broker by setting these configuration keys in the
[DEFAULT]
configuration group of the/etc/nova/nova.conf
file:[DEFAULT] ... rpc_backend = rabbit rabbit_host = controller rabbit_password =
RABBIT_PASS
Set the
my_ip
,vncserver_listen
, andvncserver_proxyclient_address
configuration options to the management interface IP address of the controller node:Edit the
/etc/nova/nova.conf
file and add these lines to the[DEFAULT]
section:[DEFAULT] ... my_ip = 10.0.0.11 vncserver_listen = 10.0.0.11 vncserver_proxyclient_address = 10.0.0.11
By default, the Ubuntu packages create an SQLite database. Delete the
nova.sqlite
file created in the/var/lib/nova/
directory so that it does not get used by mistake:# rm /var/lib/nova/nova.sqlite
Use the password you created previously to log in as root. Create a
nova
database user:$ mysql -u root -p mysql> CREATE DATABASE nova; mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \ IDENTIFIED BY '
NOVA_DBPASS
'; mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \ IDENTIFIED BY 'NOVA_DBPASS
';Create the Compute service tables:
# su -s /bin/sh -c "nova-manage db sync" nova
Create a
nova
user that Compute uses to authenticate with the Identity Service. Use theservice
tenant and give the user theadmin
role:$ keystone user-create --name=nova --pass=
NOVA_PASS
--email=[email protected]
$ keystone user-role-add --user=nova --tenant=service --role=adminConfigure Compute to use these credentials with the Identity Service running on the controller. Replace
NOVA_PASS
with your Compute password.Edit the
[DEFAULT]
section in the/etc/nova/nova.conf
file to add this key:[DEFAULT] ... auth_strategy = keystone
Add these keys to 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 = nova admin_password =NOVA_PASS
You must register Compute with the Identity Service so that other OpenStack services can locate it. Register the service and specify the endpoint:
$ keystone service-create --name=nova --type=compute \ --description="OpenStack Compute" $ keystone endpoint-create \ --service-id=$(keystone service-list | awk '/ compute / {print $2}') \ --publicurl=http://
controller
:8774/v2/%\(tenant_id\)s \ --internalurl=http://controller
:8774/v2/%\(tenant_id\)s \ --adminurl=http://controller
:8774/v2/%\(tenant_id\)sRestart Compute services:
# service nova-api restart # service nova-cert restart # service nova-consoleauth restart # service nova-scheduler restart # service nova-conductor restart # service nova-novncproxy restart
To verify your configuration, list available images:
$ nova image-list +--------------------------------------+---------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+---------------------+--------+--------+ | acafc7c0-40aa-4026-9673-b879898e1fc2 | cirros-0.3.2-x86_64 | ACTIVE | | +--------------------------------------+---------------------+--------+--------+