#!/bin/bash # # Basic neutron setup based on: # https://docs.openstack.org/neutron/pike/install/controller-install-ubuntu.html # # Prerequisites: keystone must be available and bootstrapped # # Substitutions setup at do_intall() DB_USER=%DB_USER% NEUTRON_USER=%NEUTRON_USER% NEUTRON_GROUP=%NEUTRON_GROUP% CONTROLLER_IP=%CONTROLLER_IP% ADMIN_USER=%ADMIN_USER% ADMIN_PASSWORD=%ADMIN_PASSWORD% ADMIN_ROLE=%ADMIN_ROLE% SYSCONFDIR=%SYSCONFDIR% ROOT_HOME=%ROOT_HOME% # Create the neutron DB and grant the necessary permissions sudo -u postgres psql -c "CREATE DATABASE neutron" 2> /dev/null sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE neutron TO ${DB_USER}" 2> /dev/null source ${SYSCONFDIR}/keystone/admin-openrc openstack user create --domain default --password ${ADMIN_PASSWORD} ${NEUTRON_USER} # Ensure the 'service' project exists openstack project show service > /dev/null 2>&1 if [ $? -ne 0 ]; then openstack project create service --domain default fi openstack role add --project service --user ${NEUTRON_USER} ${ADMIN_ROLE} openstack service create --name neutron --description "OpenStack Networking" network openstack endpoint create --region RegionOne network public http://${CONTROLLER_IP}:9696 openstack endpoint create --region RegionOne network internal http://${CONTROLLER_IP}:9696 openstack endpoint create --region RegionOne network admin http://${CONTROLLER_IP}:9696 sudo -u ${NEUTRON_USER} neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head # Possibly move to rabbitmq-setup, for now we are the only service # that needs this so do it here. HOME=${ROOT_HOME} rabbitmqctl add_user openstack ${ADMIN_PASSWORD} HOME=${ROOT_HOME} rabbitmqctl set_permissions openstack ".*" ".*" ".*" # enable and start the various services systemctl enable neutron-server systemctl enable neutron-linuxbridge-agent systemctl enable neutron-dhcp-agent systemctl enable neutron-metadata-agent systemctl start neutron-server systemctl start neutron-linuxbridge-agent systemctl start neutron-dhcp-agent systemctl start neutron-metadata-agent