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.