76c5d9a6c8
This is a complete DNS solution, with hidden master and bind9 slave. It lacks the designate-sink service, because there is no true specification to implement that. It listens for Nova/Neutron events and creates records though adding those to just 1 domain isn't helping much in an environment with multiple tenants. Change-Id: I500fb6058b118d25a4ccfd1d3479830c36af7e2a Blueprint: designate-container
261 lines
8.4 KiB
Bash
Executable File
261 lines
8.4 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# This script generates a minimal set of environment variables to allow
|
|
# the openstack containers to operate. It is creating a configuration
|
|
# suitable for an all-in-one installation of openstack.
|
|
#
|
|
# It also creates a suitable 'openrc' for use with the installed system.
|
|
|
|
# Move to top level directory
|
|
REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')")
|
|
cd "$(dirname "$REAL_PATH")/.."
|
|
|
|
MY_IP=$(ip route get $(ip route | awk '$1 == "default" {print $3}') |
|
|
awk '$4 == "src" {print $5}')
|
|
|
|
MY_DEV=$(ip route get $(ip route | awk '$1 == "default" {print $3}') |
|
|
awk '$4 == "src" {print $3}')
|
|
|
|
echo MY_IP=$MY_IP
|
|
echo MY_DEV=$MY_DEV
|
|
|
|
# Admin user password
|
|
ADMIN_USER_PASSWORD=steakfordinner
|
|
|
|
# Database
|
|
HOST_IP=$MY_IP
|
|
MARIADB_ROOT_PASSWORD=kolla
|
|
PASSWORD=12345
|
|
|
|
# Host
|
|
ADMIN_TENANT_NAME=admin
|
|
PUBLIC_IP=$HOST_IP
|
|
|
|
# Logging
|
|
DEBUG_LOGGING=false
|
|
VERBOSE_LOGGING=true
|
|
NOVA_LOG_DIR=
|
|
NEUTRON_LOG_DIR=/var/log/neutron
|
|
NOVA_API_LOG_FILE=
|
|
NOVA_CONDUCTOR_LOG_FILE=
|
|
NOVA_SCHEDULER_LOG_FILE=
|
|
NOVA_COMPUTE_LOG_FILE=
|
|
NOVA_CONSOLEAUTH_LOG_FILE=
|
|
NOVA_NOVNCPROXY_LOG_FILE=
|
|
NEUTRON_SERVER_LOG_FILE=
|
|
NEUTRON_L3_AGENT_LOG_FILE=
|
|
NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE=
|
|
NEUTRON_METADATA_AGENT_LOG_FILE=
|
|
|
|
# RabbitMQ
|
|
RABBITMQ_SERVICE_HOST=$HOST_IP
|
|
RABBIT_USER=guest
|
|
RABBIT_PASSWORD=guest
|
|
|
|
# Networking Options are nova or neutron
|
|
NETWORK_MANAGER=neutron
|
|
|
|
# Keystone
|
|
KEYSTONE_ADMIN_TOKEN=$PASSWORD
|
|
KEYSTONE_DB_PASSWORD=kolla
|
|
KEYSTONE_ADMIN_PASSWORD=$PASSWORD
|
|
KEYSTONE_PUBLIC_SERVICE_HOST=$HOST_IP
|
|
KEYSTONE_ADMIN_SERVICE_HOST=$HOST_IP
|
|
KEYSTONE_AUTH_PROTOCOL=http
|
|
|
|
# Glance
|
|
GLANCE_DB_NAME=glance
|
|
GLANCE_DB_USER=glance
|
|
GLANCE_DB_PASSWORD=kolla
|
|
GLANCE_KEYSTONE_USER=glance
|
|
GLANCE_KEYSTONE_PASSWORD=glance
|
|
GLANCE_API_SERVICE_HOST=$HOST_IP
|
|
GLANCE_REGISTRY_SERVICE_HOST=$HOST_IP
|
|
|
|
# Nova
|
|
NOVA_DB_PASSWORD=nova
|
|
NOVA_DB_NAME=nova
|
|
NOVA_DB_USER=nova
|
|
NOVA_KEYSTONE_USER=nova
|
|
NOVA_KEYSTONE_PASSWORD=nova
|
|
NOVA_API_SERVICE_HOST=$HOST_IP
|
|
NOVA_METADATA_API_SERVICE_HOST=$HOST_IP
|
|
NOVA_EC2_SERVICE_HOST=$HOST_IP
|
|
NOVA_PUBLIC_INTERFACE=$MY_DEV
|
|
NOVA_FLAT_INTERFACE=eth1
|
|
ENABLED_APIS=ec2,osapi_compute,metadata
|
|
METADATA_HOST=$HOST_IP
|
|
NOVA_NOVNC_PROXY_PORT=6080
|
|
NOVA_VNCSERVER_LISTEN_ADDRESS=$HOST_IP
|
|
NOVA_VNCSERVER_PROXYCLIENT_ADDRESS=$HOST_IP
|
|
NOVA_NOVNC_PROXY_SERVICE_HOST=0.0.0.0
|
|
NOVA_NOVNC_BASE_ADDRESS=${PUBLIC_IP}
|
|
|
|
# Neutron
|
|
NEUTRON_DB_NAME=neutron
|
|
NEUTRON_DB_USER=neutron
|
|
NEUTRON_DB_PASSWORD=password
|
|
NEUTRON_KEYSTONE_USER=neutron
|
|
NEUTRON_KEYSTONE_PASSWORD=neutron
|
|
NEUTRON_SERVER_SERVICE_HOST=$HOST_IP
|
|
NEUTRON_API_PASTE_CONFIG=/usr/share/neutron/api-paste.ini
|
|
# Neutron ML2 Plugin
|
|
TYPE_DRIVERS=flat,vxlan
|
|
TENANT_NETWORK_TYPES=flat,vxlan
|
|
MECHANISM_DRIVERS=linuxbridge,l2population
|
|
# Neutron Linux Bridge Agent
|
|
NEUTRON_FLAT_NETWORK_NAME=physnet1
|
|
NEUTRON_FLAT_NETWORK_INTERFACE=eth1
|
|
|
|
# Nova/Neutron
|
|
NEUTRON_SHARED_SECRET=sharedsecret
|
|
|
|
# Heat
|
|
HEAT_DB_NAME=heat
|
|
HEAT_DB_PASSWORD=kolla
|
|
HEAT_KEYSTONE_PASSWORD=heat
|
|
HEAT_API_SERVICE_HOST=$HOST_IP
|
|
HEAT_API_CFN_SERVICE_HOST=$HOST_IP
|
|
HEAT_API_CFN_URL_HOST=$HOST_IP
|
|
|
|
# Magnum
|
|
MAGNUM_DB_NAME=magnum
|
|
MAGNUM_DB_PASSWORD=kolla
|
|
MAGNUM_KEYSTONE_PASSWORD=magnum
|
|
MAGNUM_API_SERVICE_HOST=$HOST_IP
|
|
MAGNUM_API_SERVICE_PORT=9511
|
|
|
|
# Designate
|
|
DESIGNATE_DB_NAME=designate
|
|
DESIGNATE_DB_USER=designate
|
|
DESIGNATE_DB_PASSWORD=designatedns
|
|
DESIGNATE_KEYSTONE_USER=designate
|
|
DESIGNATE_KEYSTONE_PASSWORD=designate
|
|
DESIGNATE_BIND9_RNDC_KEY=$(openssl rand -base64 24)
|
|
DESIGNATE_MASTERNS=$HOST_IP
|
|
DESIGNATE_BACKEND=bind9
|
|
DESIGNATE_SLAVENS=$HOST_IP
|
|
DESIGNATE_API_SERVICE_HOST=$HOST_IP
|
|
DESIGNATE_API_SERVICE_PORT=9001
|
|
DESIGNATE_MDNS_PORT=5354
|
|
DESIGNATE_DNS_PORT=53
|
|
# The POOLID is hardcoded, upstream ships pre-configured with this uuid:
|
|
DESIGNATE_POOLMAN_POOLID=794ccc2c-d751-44fe-b57f-8894c9f5c842
|
|
DESIGNATE_POOLMAN_TARGETS=$(uuidgen)
|
|
DESIGNATE_POOLMAN_NSS=$(uuidgen)
|
|
DESIGNATE_INITDB=true
|
|
DESIGNATE_ALLOW_RECURSION=true
|
|
|
|
cat > ./openrc <<EOF
|
|
export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0"
|
|
export OS_USERNAME=$ADMIN_TENANT_NAME
|
|
export OS_PASSWORD=$ADMIN_USER_PASSWORD
|
|
export OS_TENANT_NAME=$ADMIN_TENANT_NAME
|
|
EOF
|
|
|
|
cat > ./compose/openstack.env <<EOF
|
|
DEBUG_LOGGING=$DEBUG_LOGGING
|
|
VERBOSE_LOGGING=$VERBOSE_LOGGING
|
|
NOVA_LOG_DIR=$NOVA_LOG_DIR
|
|
NEUTRON_LOG_DIR=$NEUTRON_LOG_DIR
|
|
NOVA_API_LOG_FILE=$NOVA_API_LOG_FILE
|
|
NOVA_CONDUCTOR_LOG_FILE=$NOVA_CONDUCTOR_LOG_FILE
|
|
NOVA_SCHEDULER_LOG_FILE=$NOVA_SCHEDULER_LOG_FILE
|
|
NOVA_COMPUTE_LOG_FILE=$NOVA_COMPUTE_LOG_FILE
|
|
NOVA_CONSOLEAUTH_LOG_FILE=$NOVA_CONSOLEAUTH_LOG_FILE
|
|
NOVA_NOVNCPROXY_LOG_FILE=$NOVA_NOVNCPROXY_LOG_FILE
|
|
NOVA_VNCSERVER_PROXYCLIENT_ADDRESS=$NOVA_VNCSERVER_PROXYCLIENT_ADDRESS
|
|
NOVA_VNCSERVER_LISTEN_ADDRESS=$NOVA_VNCSERVER_LISTEN_ADDRESS
|
|
NEUTRON_SERVER_LOG_FILE=$NEUTRON_SERVER_LOG_FILE
|
|
NEUTRON_L3_AGENT_LOG_FILE=$NEUTRON_L3_AGENT_LOG_FILE
|
|
NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE=$NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE
|
|
NEUTRON_METADATA_AGENT_LOG_FILE=$NEUTRON_METADATA_AGENT_LOG_FILE
|
|
TYPE_DRIVERS=$TYPE_DRIVERS
|
|
TENANT_NETWORK_TYPES=$TENANT_NETWORK_TYPES
|
|
MECHANISM_DRIVERS=$MECHANISM_DRIVERS
|
|
ADMIN_USER_PASSWORD=$ADMIN_USER_PASSWORD
|
|
ADMIN_TENANT_NAME=$ADMIN_TENANT_NAME
|
|
DB_ROOT_PASSWORD=$MARIADB_ROOT_PASSWORD
|
|
FLAT_INTERFACE=$NOVA_FLAT_INTERFACE
|
|
GLANCE_API_SERVICE_HOST=$GLANCE_API_SERVICE_HOST
|
|
MAGNUM_API_SERVICE_HOST=$MAGNUM_API_SERVICE_PORT
|
|
GLANCE_DB_NAME=$GLANCE_DB_NAME
|
|
GLANCE_DB_PASSWORD=$GLANCE_DB_PASSWORD
|
|
GLANCE_DB_USER=$GLANCE_DB_USER
|
|
GLANCE_KEYSTONE_PASSWORD=$GLANCE_KEYSTONE_PASSWORD
|
|
GLANCE_KEYSTONE_USER=$GLANCE_KEYSTONE_USER
|
|
GLANCE_REGISTRY_SERVICE_HOST=$GLANCE_REGISTRY_SERVICE_HOST
|
|
KEYSTONE_ADMIN_PASSWORD=$KEYSTONE_ADMIN_PASSWORD
|
|
KEYSTONE_ADMIN_SERVICE_HOST=$KEYSTONE_ADMIN_SERVICE_HOST
|
|
KEYSTONE_ADMIN_SERVICE_PORT=35357
|
|
KEYSTONE_ADMIN_TOKEN=$KEYSTONE_ADMIN_TOKEN
|
|
KEYSTONE_AUTH_PROTOCOL=$KEYSTONE_AUTH_PROTOCOL
|
|
KEYSTONE_DB_PASSWORD=$KEYSTONE_DB_PASSWORD
|
|
KEYSTONE_PUBLIC_SERVICE_HOST=$KEYSTONE_PUBLIC_SERVICE_HOST
|
|
MARIADB_SERVICE_HOST=$HOST_IP
|
|
MARIADB_ROOT_PASSWORD=$MARIADB_ROOT_PASSWORD
|
|
NETWORK_MANAGER=$NETWORK_MANAGER
|
|
NOVA_API_SERVICE_HOST=$NOVA_API_SERVICE_HOST
|
|
NOVA_METADATA_API_SERVICE_HOST=$NOVA_METADATA_API_SERVICE_HOST
|
|
ENABLED_APIS=$ENABLED_APIS
|
|
METADATA_HOST=$METADATA_HOST
|
|
NOVA_DB_NAME=$NOVA_DB_NAME
|
|
NOVA_DB_PASSWORD=$NOVA_DB_PASSWORD
|
|
NOVA_DB_USER=$NOVA_DB_USER
|
|
NOVA_EC2_API_SERVICE_HOST=$NOVA_EC2_SERVICE_HOST
|
|
NOVA_EC2_SERVICE_HOST=$NOVA_EC2_SERVICE_HOST
|
|
NOVA_KEYSTONE_PASSWORD=$NOVA_KEYSTONE_PASSWORD
|
|
NOVA_KEYSTONE_USER=$NOVA_KEYSTONE_USER
|
|
NOVA_NOVNC_PROXY_SERVICE_HOST=$NOVA_NOVNC_PROXY_SERVICE_HOST
|
|
NOVA_NOVNC_PROXY_PORT=$NOVA_NOVNC_PROXY_PORT
|
|
NOVA_NOVNC_BASE_ADDRESS=${NOVA_NOVNC_BASE_ADDRESS}
|
|
NEUTRON_SHARED_SECRET=$NEUTRON_SHARED_SECRET
|
|
NEUTRON_DB_NAME=$NEUTRON_DB_NAME
|
|
NEUTRON_DB_USER=$NEUTRON_DB_USER
|
|
NEUTRON_DB_PASSWORD=$NEUTRON_DB_PASSWORD
|
|
NEUTRON_KEYSTONE_USER=$NEUTRON_KEYSTONE_USER
|
|
NEUTRON_KEYSTONE_PASSWORD=$NEUTRON_KEYSTONE_PASSWORD
|
|
NEUTRON_SERVER_SERVICE_HOST=$NEUTRON_SERVER_SERVICE_HOST
|
|
NEUTRON_API_PASTE_CONFIG=$NEUTRON_API_PASTE_CONFIG
|
|
NEUTRON_FLAT_NETWORK_NAME=$NEUTRON_FLAT_NETWORK_NAME
|
|
NEUTRON_FLAT_NETWORK_INTERFACE=$NEUTRON_FLAT_NETWORK_INTERFACE
|
|
HEAT_DB_NAME=$HEAT_DB_NAME
|
|
HEAT_DB_PASSWORD=$HEAT_DB_PASSWORD
|
|
HEAT_KEYSTONE_PASSWORD=$HEAT_KEYSTONE_PASSWORD
|
|
HEAT_API_SERVICE_HOST=$HEAT_API_SERVICE_HOST
|
|
MAGNUM_DB_NAME=$MAGNUM_DB_NAME
|
|
MAGNUM_DB_PASSWORD=$MAGNUM_DB_PASSWORD
|
|
MAGNUM_KEYSTONE_PASSWORD=$MAGNUM_KEYSTONE_PASSWORD
|
|
MAGNUM_API_SERVICE_HOST=$MAGNUM_API_SERVICE_HOST
|
|
PUBLIC_INTERFACE=$NOVA_PUBLIC_INTERFACE
|
|
PUBLIC_IP=$HOST_IP
|
|
PUBLIC_IP=$PUBLIC_IP
|
|
RABBITMQ_PASS=$RABBIT_PASSWORD
|
|
RABBITMQ_SERVICE_HOST=$RABBITMQ_SERVICE_HOST
|
|
RABBITMQ_USER=$RABBIT_USER
|
|
RABBIT_PASSWORD=$RABBIT_PASSWORD
|
|
RABBIT_USERID=$RABBIT_USER
|
|
HEAT_API_CFN_SERVICE_HOST=$HEAT_API_CFN_SERVICE_HOST
|
|
DESIGNATE_DB_NAME=$DESIGNATE_DB_NAME
|
|
DESIGNATE_DB_USER=$DESIGNATE_DB_USER
|
|
DESIGNATE_DB_PASSWORD=$DESIGNATE_DB_PASSWORD
|
|
DESIGNATE_KEYSTONE_USER=$DESIGNATE_KEYSTONE_USER
|
|
DESIGNATE_KEYSTONE_PASSWORD=$DESIGNATE_KEYSTONE_PASSWORD
|
|
DESIGNATE_API_SERVICE_HOST=$DESIGNATE_API_SERVICE_HOST
|
|
DESIGNATE_API_SERVICE_PORT=$DESIGNATE_API_SERVICE_PORT
|
|
DESIGNATE_BIND9_RNDC_KEY=$DESIGNATE_BIND9_RNDC_KEY
|
|
DESIGNATE_MASTERNS=$DESIGNATE_MASTERNS
|
|
DESIGNATE_BACKEND=$DESIGNATE_BACKEND
|
|
DESIGNATE_SLAVENS=$DESIGNATE_SLAVENS
|
|
DESIGNATE_MDNS_PORT=$DESIGNATE_MDNS_PORT
|
|
DESIGNATE_DNS_PORT=$DESIGNATE_DNS_PORT
|
|
DESIGNATE_POOLMAN_POOLID=$DESIGNATE_POOLMAN_POOLID
|
|
DESIGNATE_POOLMAN_TARGETS=$DESIGNATE_POOLMAN_TARGETS
|
|
DESIGNATE_POOLMAN_NSS=$DESIGNATE_POOLMAN_NSS
|
|
DESIGNATE_INITDB=$DESIGNATE_INITDB
|
|
DESIGNATE_ALLOW_RECURSION=$DESIGNATE_ALLOW_RECURSION
|
|
EOF
|
|
echo Please customize your FLAT_INTERFACE to a different network then your
|
|
echo main network. The FLAT_INTERFACE is used for inter-VM communication.
|
|
echo the FLAT_INTERFACE should not have an IP address assigned.
|