Create the required databases and grant previleges
CREATE DATABASE nova_api; CREATE DATABASE nova; CREATE DATABASE nova_cell0;
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'commonpass'; GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'commonpass'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'commonpass'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'commonpass'; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'commonpass'; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'commonpass';
Create the nova
user and assign admin role
. admin-openrc openstack user create --domain default --password-prompt nova openstack role add --project service --user nova admin
Create service entitry and service end points
openstack service create --name nova --description "OpenStack Compute" compute
openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1 openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1 openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1
Install the packages
apt install -y nova-api nova-conductor nova-novncproxy nova-scheduler
Update /etc/nova/nova.conf
with following configurations in respective sections
[api_database] connection = mysql+pymysql://nova:commonpass@controller/nova_api [database] connection = mysql+pymysql://nova:commonpass@controller/nova [DEFAULT] transport_url = rabbit://openstack:commonpass@controller:5672/ my_ip = 10.1.1.60 use_neutron = true firewall_driver = nova.virt.firewall.NoopFirewallDriver [api] auth_strategy = keystone [keystone_authtoken] www_authenticate_uri = http://controller:5000/ auth_url = http://controller:5000/ memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = commonpass [vnc] enabled = true server_listen = $my_ip server_proxyclient_address = $my_ip [glance] api_servers = http://controller:9292 [oslo_concurrency] lock_path = /var/lib/nova/tmp [placement] region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:5000/v3 username = placement password = commonpass
Note : Had to remove all the other commented lines to avoid a parse error in placement section.
Populate the nova-api, cell0, cell1 and nova
databases
su -s /bin/sh -c "nova-manage api_db sync" nova su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova su -s /bin/sh -c "nova-manage db sync" nova su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
Restart the services
service nova-api restart service nova-scheduler restart service nova-conductor restart service nova-novncproxy restart