117 lines
3.4 KiB
Bash
117 lines
3.4 KiB
Bash
|
#!/bin/bash
|
||
|
#
|
||
|
# This script sets up the openstack users and regions..
|
||
|
# as well as the database for the nova controller.
|
||
|
# This guide was used:
|
||
|
# https://docs.openstack.org/ocata/install-guide-ubuntu/nova-controller-install.
|
||
|
|
||
|
# write the configuration files with values from the environment.
|
||
|
/etc/write_conf.sh
|
||
|
|
||
|
cat << EOF > /root/admin-openrc.sh
|
||
|
#!/bin/bash
|
||
|
export OS_TENANT_NAME=admin
|
||
|
export OS_USERNAME=admin
|
||
|
export OS_PASSWORD=${OS_PASSWORD}
|
||
|
export OS_AUTH_URL=http://${KEYSTONE_HOST}:35357/v3
|
||
|
export OS_IDENTITY_API_VERSION=3
|
||
|
|
||
|
export OS_PROJECT_DOMAIN_NAME=default
|
||
|
export OS_USER_DOMAIN_NAME=default
|
||
|
export OS_PROJECT_NAME=admin
|
||
|
export OS_IMAGE_API_VERSION=2
|
||
|
|
||
|
EOF
|
||
|
|
||
|
source /root/admin-openrc.sh
|
||
|
|
||
|
# create database for nova
|
||
|
mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -h "$MYSQL_HOST" << EOF
|
||
|
|
||
|
DROP DATABASE IF EXISTS nova;
|
||
|
DROP DATABASE IF EXISTS nova_compute; -- db for nova compute service
|
||
|
DROP DATABASE IF EXISTS nova_api;
|
||
|
DROP DATABASE IF EXISTS nova_cell0;
|
||
|
CREATE DATABASE nova;
|
||
|
CREATE DATABASE nova_compute;
|
||
|
CREATE DATABASE nova_api;
|
||
|
CREATE DATABASE nova_cell0;
|
||
|
|
||
|
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
|
||
|
IDENTIFIED BY "${NOVA_PASSWORD}";
|
||
|
|
||
|
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
|
||
|
IDENTIFIED BY "${NOVA_PASSWORD}";
|
||
|
|
||
|
GRANT ALL PRIVILEGES ON nova_compute.* TO 'nova_compute'@'localhost' \
|
||
|
IDENTIFIED BY "${NOVA_PASSWORD}";
|
||
|
|
||
|
GRANT ALL PRIVILEGES ON nova_compute.* TO 'nova_compute'@'%' \
|
||
|
IDENTIFIED BY "${NOVA_PASSWORD}";
|
||
|
|
||
|
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
|
||
|
IDENTIFIED BY "${NOVA_PASSWORD}";
|
||
|
|
||
|
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
|
||
|
IDENTIFIED BY "${NOVA_PASSWORD}";
|
||
|
|
||
|
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \
|
||
|
IDENTIFIED BY "${NOVA_PASSWORD}";
|
||
|
|
||
|
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \
|
||
|
IDENTIFIED BY "${NOVA_PASSWORD}";
|
||
|
|
||
|
EOF
|
||
|
|
||
|
openstack user create nova --domain default --password "$NOVA_PASSWORD"
|
||
|
openstack role add --project service --user nova admin
|
||
|
openstack service create --name nova --description "OpenStack Compute" compute
|
||
|
|
||
|
# compute endpoints
|
||
|
openstack endpoint create --region RegionOne \
|
||
|
compute public http://"$MY_IP":8774/v2.1
|
||
|
|
||
|
openstack endpoint create --region RegionOne \
|
||
|
compute internal http://"$MY_IP":8774/v2.1
|
||
|
|
||
|
openstack endpoint create --region RegionOne \
|
||
|
compute admin http://"$MY_IP":8774/v2.1
|
||
|
|
||
|
openstack user create --domain default --password "$NOVA_PLACEMENT_PASSWORD" placement
|
||
|
openstack role add --project service --user placement admin
|
||
|
|
||
|
openstack service create --name placement --description "Placement API" placement
|
||
|
|
||
|
# placement endpoints
|
||
|
openstack endpoint create --region RegionOne placement public http://"$MY_IP":8778
|
||
|
openstack endpoint create --region RegionOne placement internal http://"$MY_IP":8778
|
||
|
openstack endpoint create --region RegionOne placement admin http://"$MY_IP":8778
|
||
|
|
||
|
#Populate the nova-api database
|
||
|
nova-manage api_db sync
|
||
|
|
||
|
# Register the cell0 database:
|
||
|
nova-manage cell_v2 map_cell0
|
||
|
|
||
|
# Create the cel1 cell
|
||
|
nova-manage cell_v2 create_cell --name=cell1 --verbose
|
||
|
|
||
|
# sync the database
|
||
|
nova-manage db sync
|
||
|
|
||
|
e nova_api;
|
||
|
|
||
|
# Prevent crashes when nova api server tries to insert None in config_drive
|
||
|
mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -h "$MYSQL_HOST" << EOF
|
||
|
|
||
|
alter table nova_api.build_requests drop constraint CONSTRAINT_1;
|
||
|
|
||
|
EOF
|
||
|
|
||
|
# https://bugs.launchpad.net/packstack/+bug/1673305
|
||
|
# discover compute hosts.
|
||
|
nova-manage cell_v2 discover_hosts
|
||
|
|
||
|
# Verify nova cell0 and cell1 are registered correctly:
|
||
|
nova-manage cell_v2 list_cells
|