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_DBPASSwith the password for the database that you will create in a later step.Edit the
[database]section in the/etc/nova/nova.conffile, 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.conffile:[DEFAULT] ... rpc_backend = rabbit rabbit_host = controller rabbit_password =
RABBIT_PASSSet the
my_ip,vncserver_listen, andvncserver_proxyclient_addressconfiguration options to the management interface IP address of the controller node:Edit the
/etc/nova/nova.conffile 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.sqlitefile 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
novadatabase 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
novauser that Compute uses to authenticate with the Identity Service. Use theservicetenant and give the user theadminrole:$ 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_PASSwith your Compute password.Edit the
[DEFAULT]section in the/etc/nova/nova.conffile 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_PASSYou 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 | | +--------------------------------------+---------------------+--------+--------+

