OpenStack Compute Service (Cloud Controller services)
The OpenStack Compute service provides the cloud environment with the ability to manage the scheduling,
creation and deletion of virtual machines (instances).
Install the OpenStack Compute packages:
# apt-get install nova-api nova-cert nova-common nova-conductor \
nova-scheduler python-nova python-novaclient nova-consoleauth novnc \
nova-novncproxy
# yum install openstack-nova-api openstack-nova-scheduler \
openstack-nova-cert openstack-nova-console openstack-nova-doc \
genisoimage openstack-dashboard openstack-nova-novncproxy \
openstack-nova-conductor novnc
# zypper install openstack-nova-api openstack-nova-scheduler \
openstack-nova-cert openstack-nova-conductor openstack-nova-console \
openstack-nova-consoleauth openstack-nova-doc \
openstack-nova-novncproxy
Configure OpenStack Compute:
Edit /etc/nova/api-paste.ini:
admin_tenant_name = service
admin_user = nova
admin_password = password
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
service_protocol = http
service_host = 127.0.0.1
service_port = 5000
admin_tenant_name = service
admin_user = nova
admin_password = password
# Workaround for https://bugs.launchpad.net/nova/+bug/1154809
auth_version = v2.0
admin_tenant_name = service
admin_user = nova
admin_password = password
Add the following to the /etc/nova/nova.conf file. This file is
the main configuration file of OpenStack Compute. There is a large amount of configuration options
that can go in this file. This guide illustrates the minimum needed for a simple environment.
Note that the nova.conf file supplied by your distribution has some options already set. Leave
them as-is.
[DEFAULT]
my_ip=10.10.10.10
rabbit_password=password
auth_strategy=keystone
# Networking
network_api_class=nova.network.neutronv2.api.API
neutron_url=http://10.10.10.10:9696
neutron_auth_strategy=keystone
neutron_admin_tenant_name=service
neutron_admin_username=neutron
neutron_admin_password=password
neutron_admin_auth_url=http://10.10.10.10:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
# Security Groups
firewall_driver=nova.virt.firewall.NoopFirewallDriver
security_group_api=neutron
# Metadata
neutron_metadata_proxy_shared_secret=password
service_neutron_metadata_proxy=true
metadata_listen = 10.10.10.10
metadata_listen_port = 8775
# Cinder
volume_api_class=nova.volume.cinder.API
# Glance
glance_api_servers=10.10.10.10:9292
image_service=nova.image.glance.GlanceImageService
# novnc
novnc_enable=true
novncproxy_port=6080
novncproxy_host=10.0.0.10
vncserver_listen=0.0.0.0
# General
verbose = True
qpid_username=guest
qpid_password=guest
rpc_backend = nova.openstack.common.rpc.impl_qpid
# Networking
network_api_class=nova.network.neutronv2.api.API
neutron_url=http://10.10.10.10:9696
neutron_auth_strategy=keystone
neutron_admin_tenant_name=service
neutron_admin_username=neutron
neutron_admin_password=password
neutron_admin_auth_url=http://10.10.10.10:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
# Security Groups
firewall_driver=nova.virt.firewall.NoopFirewallDriver
security_group_api=neutron
# Metadata
neutron_metadata_proxy_shared_secret=password
service_neutron_metadata_proxy=true
metadata_listen = 10.10.10.10
metadata_listen_port = 8775
# Cinder
volume_api_class=nova.volume.cinder.API
# Glance
glance_api_servers=10.10.10.10:9292
image_service=nova.image.glance.GlanceImageService
# novnc
novnc_enable=true
novncproxy_port=6080
novncproxy_host=10.0.0.10
vncserver_listen=0.0.0.0
[database]
connection=mysql://nova:password@localhost/nova
[DEFAULT]
rabbit_password=password
auth_strategy=keystone
# Networking
network_api_class=nova.network.neutronv2.api.API
neutron_url=http://10.10.10.10:9696
neutron_auth_strategy=keystone
neutron_admin_tenant_name=service
neutron_admin_username=neutron
neutron_admin_password=password
neutron_admin_auth_url=http://10.10.10.10:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
# Security Groups
firewall_driver=nova.virt.firewall.NoopFirewallDriver
security_group_api=neutron
# Metadata
neutron_metadata_proxy_shared_secret=password
service_neutron_metadata_proxy=true
metadata_listen = 10.10.10.10
metadata_listen_port = 8775
# Cinder
volume_api_class=nova.volume.cinder.API
# Glance
glance_api_servers=10.10.10.10:9292
image_service=nova.image.glance.GlanceImageService
# novnc
novnc_enable=true
novncproxy_port=6080
novncproxy_host=10.0.0.10
vncserver_listen=0.0.0.0
[database]
connection=mysql://nova:password@localhost/nova
Create the OpenStack Compute tables in the database:
# nova-manage db sync
Restart OpenStack 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
# service openstack-nova-api restart
# service openstack-nova-cert restart
# service openstack-nova-consoleauth restart
# service openstack-nova-scheduler restart
# service openstack-nova-conductor restart
# service openstack-nova-novncproxy restart
# 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
# systemctl restart openstack-nova-api.service
# systemctl restart openstack-nova-cert.service
# systemctl restart openstack-nova-consoleauth.service
# systemctl restart openstack-nova-scheduler.service
# systemctl restart openstack-nova-conductor.service
# systemctl restart openstack-nova-novncproxy.service
# systemctl enable openstack-nova-api.service
# systemctl enable openstack-nova-cert.service
# systemctl enable openstack-nova-consoleauth.service
# systemctl enable openstack-nova-scheduler.service
# systemctl enable openstack-nova-conductor.service
# systemctl enable openstack-nova-novncproxy.service
Check the /var/log/nova/nova-* files for any errors
that would prevent the Compute Service from successfully starting.