Install and configure controller node This section describes how to install and configure the Compute service, code-named nova, on the controller node. To configure prerequisites Before you install and configure the Compute service, you must create a database, service credentials, and API endpoints. To create the database, complete these steps: Use the database access client to connect to the database server as the root user: $ mysql -u root -p Create the nova database: CREATE DATABASE nova; Grant proper access to the nova database: GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \ IDENTIFIED BY 'NOVA_DBPASS'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \ IDENTIFIED BY 'NOVA_DBPASS'; Replace NOVA_DBPASS with a suitable password. Exit the database access client. Source the admin credentials to gain access to admin-only CLI commands: $ source admin-openrc.sh To create the service credentials, complete these steps: Create the nova user: $ keystone user-create --name nova --pass NOVA_PASS +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | | | enabled | True | | id | 387dd4f7e46d4f72965ee99c76ae748c | | name | nova | | username | nova | +----------+----------------------------------+ Replace NOVA_PASS with a suitable password. Add the admin role to the nova user: $ keystone user-role-add --user nova --tenant service --role admin This command provides no output. Create the nova service entity: $ keystone service-create --name nova --type compute \ --description "OpenStack Compute" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | OpenStack Compute | | enabled | True | | id | 6c7854f52ce84db795557ebc0373f6b9 | | name | nova | | type | compute | +-------------+----------------------------------+ Create the Compute service API endpoints: $ 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\)s \ --region regionOne +-------------+-----------------------------------------+ | Property | Value | +-------------+-----------------------------------------+ | adminurl | http://controller:8774/v2/%(tenant_id)s | | id | c397438bd82c41198ec1a9d85cb7cc74 | | internalurl | http://controller:8774/v2/%(tenant_id)s | | publicurl | http://controller:8774/v2/%(tenant_id)s | | region | regionOne | | service_id | 6c7854f52ce84db795557ebc0373f6b9 | +-------------+-----------------------------------------+ To install and configure Compute controller components Install the packages: # apt-get install nova-api nova-cert nova-conductor nova-consoleauth \ nova-novncproxy nova-scheduler python-novaclient # yum install openstack-nova-api openstack-nova-cert openstack-nova-conductor \ openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler \ python-novaclient # zypper install openstack-nova-api openstack-nova-scheduler openstack-nova-cert \ openstack-nova-conductor openstack-nova-consoleauth openstack-nova-novncproxy \ python-novaclient iptables Edit the /etc/nova/nova.conf file and complete the following actions: Add a [database] section, and configure database access: [database] ... connection = mysql://nova:NOVA_DBPASS@controller/nova Replace NOVA_DBPASS with the password you chose for the Compute database. In the [DEFAULT] section, configure RabbitMQ message broker access: [DEFAULT] ... rpc_backend = rabbit rabbit_host = controller rabbit_password = RABBIT_PASS Replace RABBIT_PASS with the password you chose for the guest account in RabbitMQ. In the [DEFAULT] and [keystone_authtoken] sections, configure Identity service access: [DEFAULT] ... auth_strategy = keystone [keystone_authtoken] ... auth_uri = http://controller:5000/v2.0 identity_uri = http://controller:35357 admin_tenant_name = service admin_user = nova admin_password = NOVA_PASS Replace NOVA_PASS with the password you chose for the nova user in the Identity service. Comment out any auth_host, auth_port, and auth_protocol options because the identity_uri option replaces them. In the [DEFAULT] section, configure the my_ip option to use the management interface IP address of the controller node: [DEFAULT] ... my_ip = 10.0.0.11 In the [DEFAULT] section, configure the VNC proxy to use the management interface IP address of the controller node: [DEFAULT] ... vncserver_listen = 10.0.0.11 vncserver_proxyclient_address = 10.0.0.11 In the [glance] section, configure the location of the Image Service: [glance] ... host = controller (Optional) To assist with troubleshooting, enable verbose logging in the [DEFAULT] section: [DEFAULT] ... verbose = True Populate the Compute database: # su -s /bin/sh -c "nova-manage db sync" nova To install and configure the Compute controller components Install the packages: # apt-get install nova-api nova-cert nova-conductor nova-consoleauth \ nova-novncproxy nova-scheduler python-novaclient Respond to prompts for database management, Identity service credentials, service endpoint registration, and message broker credentials. Edit the /etc/nova/nova.conf file and complete the following actions: In the [DEFAULT] section, configure the VNC proxy to use the management interface IP address of the controller node: [DEFAULT] ... vncserver_listen = 10.0.0.11 vncserver_proxyclient_address = 10.0.0.11 To finalize installation Restart the 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 Start the Compute services and configure them to start when the system boots: # systemctl enable openstack-nova-api.service openstack-nova-cert.service \ openstack-nova-consoleauth.service openstack-nova-scheduler.service \ openstack-nova-conductor.service openstack-nova-novncproxy.service # systemctl start openstack-nova-api.service openstack-nova-cert.service \ openstack-nova-consoleauth.service openstack-nova-scheduler.service \ openstack-nova-conductor.service openstack-nova-novncproxy.service On SLES: # 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 On openSUSE: # systemctl enable openstack-nova-api.service openstack-nova-cert.service \ openstack-nova-consoleauth.service openstack-nova-scheduler.service \ openstack-nova-conductor.service openstack-nova-novncproxy.service # systemctl start openstack-nova-api.service openstack-nova-cert.service \ openstack-nova-consoleauth.service openstack-nova-scheduler.service \ openstack-nova-conductor.service openstack-nova-novncproxy.service By default, the Ubuntu packages create an SQLite database. Because this configuration uses a SQL database server, you can remove the SQLite database file: # rm -f /var/lib/nova/nova.sqlite