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.
# zypper install openstack-nova-api openstack-nova-scheduler \ openstack-nova-cert openstack-nova-conductor openstack-nova-console \ openstack-nova-consoleauth openstack-nova-novncproxy 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.# openstack-config --set /etc/nova/nova.conf \ database connection mysql://nova:
NOVA_DBPASS
@controller
/novaSet these configuration keys to configure Compute to use the RabbitMQ message broker:
# openstack-config --set /etc/nova/nova.conf \ DEFAULT rpc_backend nova.rpc.impl_kombu # openstack-config --set /etc/nova/nova.conf DEFAULT rabbit_host controller # openstack-config --set /etc/nova/nova.conf DEFAULT 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:# openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 10.0.0.11 # openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 10.0.0.11 # openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 10.0.0.11
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 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.# openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone # openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://
controller
:5000 # openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_hostcontroller
# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_protocol http # openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port 35357 # openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user nova # openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name service # openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_passwordNOVA_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\)sStart Compute services and configure them to start when the system boots:
# service openstack-nova-api start # service openstack-nova-cert start # service openstack-nova-consoleauth start # service openstack-nova-scheduler start # service openstack-nova-conductor start # service openstack-nova-novncproxy start # chkconfig openstack-nova-api on # chkconfig openstack-nova-cert on # chkconfig openstack-nova-consoleauth on # chkconfig openstack-nova-scheduler on # chkconfig openstack-nova-conductor on # chkconfig openstack-nova-novncproxy on
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 | | +--------------------------------------+---------------------+--------+--------+