diff --git a/docs/dev-quickstart.md b/docs/dev-quickstart.md index ffa9a44502..2b79097e41 100644 --- a/docs/dev-quickstart.md +++ b/docs/dev-quickstart.md @@ -1,11 +1,14 @@ # Developer Environment -If you are developing Kolla on an existing OpenStack cloud -that supports Heat, then follow the Heat template [README][]. -Otherwise, follow the instructions below to manually create -your Kolla development environment. +If you are developing Kolla on an existing OpenStack cloud that supports +Heat, then follow the Heat template [README][]. Another option available +on systems with VirutalBox is the use of [Vagrant][]. + +The best experience is available with bare metal deployment by following +the instructions below to manually create your Kolla deployment. [README]: https://github.com/stackforge/kolla/blob/master/devenv/README.md +[Vagrant]: https://github.com/stackforge/kolla/blob/master/docs/vagrant.md ## Installing Dependencies @@ -14,21 +17,18 @@ modules with the .xz compressed format. The guestfs system cannot read these images because a dependent package supermin in CentOS needs to be updated to add .xz compressed format support. -In order to run Kolla, it is mandatory to run a version of `docker-compose` -that includes pid: host support. Support was added in version 1.3.0 and is -specified in the requirements.txt. To install this and other potential future -dependencies: +To install Kolla depenedencies use: git clone http://github.com/stackforge/kolla cd kolla sudo pip install -r requirements.txt In order to run Kolla, it is mandatory to run a version of `docker` that is -1.6.0 or later. Docker 1.5.0 has a defect in `--pid=host` support where the -libvirt container cannot be stopped and crashes nova-compute on start. +1.7.0 or later. For most systems you can install the latest stable version of Docker with the following command: + curl -sSL https://get.docker.io | bash For Ubuntu based systems, do not use AUFS when starting Docker daemon unless @@ -46,71 +46,31 @@ running at a time. service libvirtd stop -The basic starting environment will be created using `docker-compose`. +The basic starting environment will be created using `ansible`. This environment will start up the OpenStack services listed in the -compose directory. +inventory file. ## Starting Kolla -To start, setup your environment variables. +Configure Ansible by reading the Kolla Ansible configuration documentation +[DEPLOY][]. - $ cd kolla - $ ./tools/genenv - -The `genenv` script will create a compose/openstack.env file -and an openrc file in your current directory. The openstack.env -file contains all of your initialized environment variables, which -you can edit for a different setup. - -A mandatory step is customizing the FLAT_INTERFACE network interface -environment variable. The variable defaults to eth1. In some cases, the -second interface in a system may not be eth1, but a unique name. For -example with an Intel driver, the interface is enp1s0. The interface name -can be determined by executing the ifconfig tool. The second interface must -be a real interface, not a virtual interface. Make certain to store the -interface name in `compose/openstack.env`: - - NEUTRON_FLAT_NETWORK_INTERFACE=enp1s0 - FLAT_INTERFACE=enp1s0 +[DEPLOY]: https://github.com/stackforge/kolla/blob/master/docs/ansible-deployment.md Next, run the start command: - $ sudo ./tools/kolla-compose start + $ sudo ./tools/kolla-ansible deploy -Finally, run the status command: - - $ sudo ./tools/kolla-compose status - -This will display information about all Kolla containers. +A bare metal system takes three minutes to deploy AIO. A virtual machine +takes five minutes to deploy AIO. These are estimates; your hardware may +be faster or slower but should near these results. ## Debugging Kolla -All Docker commands should be run from the directory of the Docker binary, -by default this is `/`. - -The `start` command to Kolla is responsible for starting the containers -using `docker-compose -f <service-container> up -d`. - -If you want to start a container set by hand use this template: - - $ docker-compose -f glance-api-registry.yml up -d - - You can determine a container's status by executing: - $ sudo ./docker ps -a + $ sudo docker ps -a If any of the containers exited you can check the logs by executing: - $ sudo ./docker logs <container-id> - $ docker-compose logs <container-id> - -If you want to start a individual service like `glance-api` manually, use -this template. This is a good method to test and troubleshoot an individual -container. Note some containers require special options. Reference the -compose yml specification for more details: - - $ sudo ./docker run --name glance-api -d \ - --net=host \ - --env-file=compose/openstack.env \ - kollaglue/fedora-rdo-glance-api:latest + $ sudo docker logs <container-name> diff --git a/tools/genenv b/tools/genenv deleted file mode 100755 index 050df7f3cf..0000000000 --- a/tools/genenv +++ /dev/null @@ -1,686 +0,0 @@ -#!/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. - -function check_binarydependencies { - local binaries="openssl" - local missingbinaries="" - local space="" - - for bin in $binaries; do - if [[ ! $(type -t $bin) ]]; then - missingbinaries+=${space}$bin - space=" " - fi - done - - if [ -n "$missingbinaries" ]; then - echo Missing dependencies: $missingbinaries - exit 1 - fi -} - -check_binarydependencies - -# Move to top level directory -REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')") -cd "$(dirname "$REAL_PATH")/.." - -MY_IP=${MY_IP:-$(ip route get $(ip route | awk '$1 == "default" {print $3}') | - awk '$4 == "src" {print $5}')} - -MY_DEV=${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 - -# API versions -CINDER_API_VERSION=2 - -# Admin user -ADMIN_USER=admin -ADMIN_USER_PASSWORD=steakfordinner - -# Database -BIND_ADDRESS=$PUBLIC_IP -CHAR_SET_SERVER=utf8 -COLLATION_SERVER=utf8_general_ci -DATADIR=/var/lib/mysql -DEFAULT_STORAGE_ENGINE=innodb -HOST_IP=$MY_IP -INIT_CINDER_DB=true -INIT_CONNECT="SET NAMES utf8" -INIT_DESIGNATE_DB=true -INIT_GLANCE_DB=true -INIT_MURANO_DB=true -INIT_HEAT_DB=true -INIT_KEYSTONE_DB=true -INIT_NOVA_DB=true -INNODB_FILE_PER_TABLE=true -MARIADB_MAX_CONNECTIONS=151 -MARIADB_SERVICE_PORT=3306 -MONGODB_SERVICE_PORT=27017 -MARIADB_ROOT_PASSWORD=kolla -PASSWORD=12345 -TEMP_FILE=/tmp/mysql-first-time.sql - -# Galera -DB_CLUSTER_BIND_ADDRESS=0.0.0.0 -DB_CLUSTER_INIT_DB=false -DB_CLUSTER_NAME=kollacluster -DB_CLUSTER_NODES= -DB_CLUSTER_WSREP_METHOD=mysqldump - -# Host -ADMIN_TENANT_NAME=admin -PUBLIC_IP=$HOST_IP - -# Logging -CINDER_API_LOG_FILE= -CINDER_BACKUP_LOG_FILE= -CINDER_LOG_DIR= -CINDER_SCHEDULER_LOG_FILE= -CINDER_VOLUME_LOG_FILE= -DEBUG_LOGGING=false -NEUTRON_L3_AGENT_LOG_FILE= -NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE= -NEUTRON_LOG_DIR=/var/log/neutron -NEUTRON_METADATA_AGENT_LOG_FILE= -NEUTRON_SERVER_LOG_FILE= -NOVA_API_LOG_FILE= -NOVA_COMPUTE_LOG_FILE= -NOVA_CONDUCTOR_LOG_FILE= -NOVA_CONSOLEAUTH_LOG_FILE= -NOVA_LOG_DIR= -NOVA_NOVNCPROXY_LOG_FILE= -NOVA_SCHEDULER_LOG_FILE= -OVS_DB_FILE="/etc/openvswitch/conf.db" -OVS_LOG_FILE= -OVS_UNIXSOCK="/var/run/openvswitch/db.sock" -VERBOSE_LOGGING=true - - -# RabbitMQ -RABBITMQ_CLUSTER_COOKIE= -RABBITMQ_CLUSTER_NODES= -RABBITMQ_SERVICE_HOST=$HOST_IP -RABBITMQ_SERVICE_PORT=5672 -RABBIT_PASSWORD=guest -RABBITMQ_USER=guest - -#Barbican -ADMIN_TENANT_NAME=admin -BARBICAN_ADMIN_SERVICE_PORT=9312 -BARBICAN_DB_NAME=barbican -BARBICAN_DB_USER=barbican -BARBICAN_KEYSTONE_USER=barbican -BARBICAN_PUBLIC_SERVICE_PORT=9311 -KEYSTONE_AUTH_PROTOCOL=http - -#Ceilometer -CEILOMETER_ADMIN_PASSWORD=password -CEILOMETER_API_SERVICE_HOST=$HOST_IP -CEILOMETER_API_SERVICE_PORT=8777 -CEILOMETER_DB_NAME=ceilometer -CEILOMETER_DB_PASSWORD=password -CEILOMETER_DB_USER=ceilometer -CEILOMETER_KEYSTONE_USER=ceilometer - -# Cinder API -CINDER_ADMIN_PASSWORD=password -CINDER_API_SERVICE_HOST=$HOST_IP -CINDER_API_SERVICE_LISTEN=$HOST_IP -CINDER_API_SERVICE_PORT=8776 -CINDER_KEYSTONE_PASSWORD=password -CINDER_KEYSTONE_USER=cinder - -# Cinder Scheduler -CINDER_DB_NAME=cinder -CINDER_DB_PASSWORD=password -CINDER_DB_USER=cinder - -# Cinder Backup -CINDER_BACKUP_API_CLASS=cinder.backup.api.API -CINDER_BACKUP_DRIVER=cinder.backup.drivers.swift -CINDER_BACKUP_MANAGER=cinder.backup.manager.BackupManager -CINDER_BACKUP_NAME_TEMPLATE=backup-%s - -# Cinder Volume -CINDER_ENABLED_BACKEND=lvm57 -CINDER_LVM_LO_VOLUME_SIZE=4G -CINDER_VOLUME_API_LISTEN=$HOST_IP -CINDER_VOLUME_BACKEND_NAME=LVM_iSCSI57 -CINDER_VOLUME_DRIVER=cinder.volume.drivers.lvm.LVMISCSIDriver -CINDER_VOLUME_GROUP=cinder-volumes -ISCSI_HELPER=tgtadm -ISCSI_IP_ADDRESS=$HOST_IP - -# 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 -DESIGNATE_POOLMAN_POOLID=$(uuidgen) -DESIGNATE_POOLMAN_TARGETS=$(uuidgen) -DESIGNATE_POOLMAN_NSS=$(uuidgen) -DESIGNATE_ALLOW_RECURSION=true -DESIGNATE_DEFAULT_POOL_NS_RECORD=ns1.example.org. -DESIGNATE_SINK_NOVA_DOMAIN_NAME=nova.example.org. -DESIGNATE_SINK_NEUTRON_DOMAIN_NAME=neutron.example.org. -DESIGNATE_SINK_NOVA_FORMATS=("%(octet0)s-%(octet1)s-%(octet2)s-%(octet3)s.%(domain)s" "%(hostname)s.%(domain)s") -DESIGNATE_SINK_NEUTRON_FORMATS=("%(octet0)s-%(octet1)s-%(octet2)s-%(octet3)s.%(domain)s" "%(hostname)s.%(domain)s") - -# Glance -GLANCE_API_SERVICE_HOST=$HOST_IP -GLANCE_API_SERVICE_PORT=9292 -GLANCE_DB_NAME=glance -GLANCE_DB_PASSWORD=kolla -GLANCE_DB_USER=glance -GLANCE_KEYSTONE_PASSWORD=glance -GLANCE_KEYSTONE_USER=glance -GLANCE_REGISTRY_SERVICE_HOST=$HOST_IP -GLANCE_REGISTRY_SERVICE_PORT=9191 - -# Gnocchi -GNOCCHI_DB_PASSWORD=gnocchi -GNOCCHI_DB_NAME=gnocchi -GNOCCHI_DB_USER=gnocchi -GNOCCHI_SERVICE_PROTOCOL=http -GNOCCHI_SERVICE_PORT=8041 -GNOCCHI_STORAGE_BACKEND=file -GNOCCHI_KEYSTONE_USER=gnocchi -GNOCCHI_KEYSTONE_PASSWORD=gnocchi -GNOCCHI_ADMIN_PASSWORD=gnocchi -GNOCCHI_API_SERVICE_HOST=$HOST_IP - - -# Heat -HEAT_API_CFN_SERVICE_HOST=$HOST_IP -HEAT_API_CFN_SERVICE_PORT=8000 -HEAT_API_CFN_URL_HOST=$HOST_IP -HEAT_API_SERVICE_HOST=$HOST_IP -HEAT_API_SERVICE_PORT=8004 -HEAT_CFN_KEYSTONE_PASSWORD=heat -HEAT_CFN_KEYSTONE_USER=heat-cfn -HEAT_DB_NAME=heat -HEAT_DB_PASSWORD=kolla -HEAT_DOMAIN_PASS=$(openssl rand -hex 8) -HEAT_KEYSTONE_PASSWORD=heat -HEAT_KEYSTONE_USER=heat - -#Horizon -HORIZON_KEYSTONE_USER=horizon -HORIZON_SERVICE_PORT=80 - -# Keystone -KEYSTONE_ADMIN_PASSWORD=$PASSWORD -KEYSTONE_ADMIN_SERVICE_HOST=$HOST_IP -KEYSTONE_ADMIN_SERVICE_PORT=35357 -KEYSTONE_ADMIN_TOKEN=$PASSWORD -KEYSTONE_API_VERSION=2.0 -KEYSTONE_AUTH_PROTOCOL=http -KEYSTONE_DB_NAME=keystone -KEYSTONE_DB_PASSWORD=kolla -KEYSTONE_DB_USER=keystone -KEYSTONE_PUBLIC_SERVICE_HOST=$HOST_IP -KEYSTONE_PUBLIC_SERVICE_PORT=5000 -KEYSTONE_USER=keystone -TOKEN_DRIVER=sql -TOKEN_PROVIDER=uuid -USE_STDERR=false - -# Keepalived -# Here we define pairs hostname:priority. Priorities have to be unique -KEEPALIVED_HOST_PRIORITIES=host1:100,host2:99 - -# Magnum -MAGNUM_DB_NAME=magnum -MAGNUM_DB_USER=magnum -MAGNUM_DB_PASSWORD=kolla -MAGNUM_KEYSTONE_USER=magnum -MAGNUM_KEYSTONE_PASSWORD=magnum -MAGNUM_API_SERVICE_HOST=$HOST_IP -MAGNUM_API_SERVICE_PORT=9511 - -# Murano -MURANO_DB_NAME=murano -MURANO_DB_PASSWORD=murano -MURANO_DB_USER=murano -MURANO_HOST_IP=$HOST_IP -MURANO_KEYSTONE_PASSWORD=password -MURANO_KEYSTONE_USER=murano -MURANO_SERVICE_PORT=8082 -MURANO_SERVICE_PROTOCOL=http - -# 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_SERVER_SERVICE_PORT=9696 -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 - -# Neutron ML2 Plugin -MECHANISM_DRIVERS=linuxbridge,l2population -TENANT_NETWORK_TYPES=flat,vxlan -TYPE_DRIVERS=flat,vxlan - -# Neutron Linux Bridge Agent -DELETE_NAMESPACES=true -DHCP_DRIVER=neutron.agent.linux.dhcp.Dnsmasq -DNSMASQ_CONFIG_FILE=/etc/neutron/dnsmasq/dnsmasq-neutron.conf -ENDPOINT_TYPE=adminURL -KEYSTONE_REGION=RegionOne -NEUTRON_FLAT_NETWORK_INTERFACE=eth1 -NEUTRON_FLAT_NETWORK_NAME=physnet1 -ROOT_HELPER="sudo neutron-rootwrap /etc/neutron/rootwrap.conf" -USE_NAMESPACES=true - -# Networking Options are nova or neutron -NETWORK_MANAGER=neutron - -# Nova -ENABLED_APIS=ec2,osapi_compute,metadata -METADATA_HOST=$HOST_IP -NOVA_API_SERVICE_HOST=$HOST_IP -NOVA_API_SERVICE_PORT=8774 -NOVA_DB_NAME=nova -NOVA_DB_PASSWORD=nova -NOVA_DB_USER=nova -NOVA_EC2_SERVICE_HOST=$HOST_IP -NOVA_EC2_API_SERVICE_PORT=8773 -NOVA_FLAT_INTERFACE=eth1 -NOVA_KEYSTONE_PASSWORD=nova -NOVA_KEYSTONE_USER=nova -NOVA_LIBVIRT_SERVICE_PORT=16509 -NOVA_METADATA_API_SERVICE_HOST=$HOST_IP -NOVA_METADATA_API_SERVICE_PORT=8775 -NOVA_NOVNC_BASE_ADDRESS=${PUBLIC_IP} -NOVA_NOVNC_PROXY_PORT=6080 -NOVA_NOVNC_PROXY_SERVICE_HOST=0.0.0.0 -NOVA_PUBLIC_INTERFACE=$MY_DEV -NOVA_VNCSERVER_LISTEN_ADDRESS=$HOST_IP -NOVA_VNCSERVER_PROXYCLIENT_ADDRESS=$HOST_IP - -# Nova/Neutron -NEUTRON_SHARED_SECRET=sharedsecret - -# Swift -SWIFT_ACCOUNT_SVC_BIND_IP=$PUBLIC_IP -SWIFT_ACCOUNT_SVC_BIND_PORT=6002 -SWIFT_ACCOUNT_SVC_DEVICES=/srv/node -SWIFT_ACCOUNT_SVC_MOUNT_CHECK=false -SWIFT_ADMIN_USER=swift -SWIFT_API_SERVICE_HOST=$HOST_IP -SWIFT_CONTAINER_SVC_BIND_IP=$PUBLIC_IP -SWIFT_CONTAINER_SVC_BIND_PORT=6001 -SWIFT_CONTAINER_SVC_DEVICES=/srv/node -SWIFT_CONTAINER_SVC_MOUNT_CHECK=false -SWIFT_DIR=/etc/swift -SWIFT_HASH_PATH_SUFFIX=$(openssl rand -hex 8) -SWIFT_KEYSTONE_PASSWORD=swift -SWIFT_KEYSTONE_USER=swift -SWIFT_OBJECT_SVC_BIND_IP=$PUBLIC_IP -SWIFT_OBJECT_SVC_BIND_PORT=6000 -SWIFT_OBJECT_SVC_DEVICES=/srv/node -SWIFT_OBJECT_SVC_MOUNT_CHECK=false -SWIFT_OBJECT_SVC_PIPELINE=object-server -SWIFT_PROXY_ACCOUNT_AUTOCREATE=true -SWIFT_PROXY_AUTH_PLUGIN=password -SWIFT_PROXY_BIND_IP=$PUBLIC_IP -SWIFT_PROXY_BIND_PORT=8080 -SWIFT_PROXY_DELAY_AUTH_DECISION=true -SWIFT_PROXY_DIR=/etc/swift -SWIFT_PROXY_OPERATOR_ROLES=admin,user -SWIFT_PROXY_PASSWORD=swift -SWIFT_PROXY_PIPELINE_MAIN="catch_errors gatekeeper healthcheck cache container_sync bulk ratelimit authtoken keystoneauth slo dlo proxy-server" -SWIFT_PROXY_PROJECT_DOMAIN_ID=default -SWIFT_PROXY_PROJECT_NAME=service -SWIFT_PROXY_SIGNING_DIR=/var/cache/swift -SWIFT_PROXY_USER_DOMAIN_ID=default -SWIFT_PROXY_USERNAME=swift -SWIFT_USER=swift -SWIFT_OBJECT_SVC_RING_NAME=/etc/swift/object.builder -SWIFT_OBJECT_SVC_RING_PART_POWER=10 -SWIFT_OBJECT_SVC_RING_REPLICAS=3 -SWIFT_OBJECT_SVC_RING_MIN_PART_HOURS=1 -SWIFT_OBJECT_SVC_RING_HOSTS="${HOST_IP}:6000,${HOST_IP}:6000,${HOST_IP}:6000" -SWIFT_OBJECT_SVC_RING_DEVICES="sdb1,sdb2,sdb3" -SWIFT_OBJECT_SVC_RING_WEIGHTS="1,1,1" -SWIFT_OBJECT_SVC_RING_ZONES="1,2,3" -SWIFT_CONTAINER_SVC_RING_NAME=/etc/swift/container.builder -SWIFT_CONTAINER_SVC_RING_PART_POWER=10 -SWIFT_CONTAINER_SVC_RING_REPLICAS=3 -SWIFT_CONTAINER_SVC_RING_MIN_PART_HOURS=1 -SWIFT_CONTAINER_SVC_RING_HOSTS="${HOST_IP}:6001,${HOST_IP}:6001,${HOST_IP}:6001" -SWIFT_CONTAINER_SVC_RING_DEVICES="sdb1,sdb2,sdb3" -SWIFT_CONTAINER_SVC_RING_WEIGHTS="1,1,1" -SWIFT_CONTAINER_SVC_RING_ZONES="1,2,3" -SWIFT_ACCOUNT_SVC_RING_NAME=/etc/swift/account.builder -SWIFT_ACCOUNT_SVC_RING_PART_POWER=10 -SWIFT_ACCOUNT_SVC_RING_REPLICAS=3 -SWIFT_ACCOUNT_SVC_RING_MIN_PART_HOURS=1 -SWIFT_ACCOUNT_SVC_RING_HOSTS="${HOST_IP}:6002,${HOST_IP}:6002,${HOST_IP}:6002" -SWIFT_ACCOUNT_SVC_RING_DEVICES="sdb1,sdb2,sdb3" -SWIFT_ACCOUNT_SVC_RING_WEIGHTS="1,1,1" -SWIFT_ACCOUNT_SVC_RING_ZONES="1,2,3" - -#Zaqar -ZAQAR_KEYSTONE_USER=zaqar -ZAQAR_SERVER_SERVICE_PORT=8888 - -# this should use the keystone admin port -# https://bugs.launchpad.net/kolla/+bug/1469209 -cat > ./openrc <<EOF -export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" -export OS_USERNAME=$ADMIN_TENANT_NAME -export OS_PASSWORD=$ADMIN_USER_PASSWORD -export OS_TENANT_NAME=$ADMIN_TENANT_NAME -export OS_VOLUME_API_VERSION=$CINDER_API_VERSION -EOF - -cat > ./compose/openstack.env <<EOF -ADMIN_TENANT_NAME=$ADMIN_TENANT_NAME -ADMIN_USER=$ADMIN_USER -ADMIN_USER_PASSWORD=$ADMIN_USER_PASSWORD -BARBICAN_ADMIN_SERVICE_PORT=$BARBICAN_ADMIN_SERVICE_PORT -BARBICAN_DB_NAME=$BARBICAN_DB_NAME -BARBICAN_DB_USER=$BARBICAN_DB_USER -BARBICAN_KEYSTONE_USER=$BARBICAN_KEYSTONE_USER -BARBICAN_PUBLIC_SERVICE_PORT=$BARBICAN_PUBLIC_SERVICE_PORT -BIND_ADDRESS=$BIND_ADDRESS -CEILOMETER_ADMIN_PASSWORD=$CEILOMETER_ADMIN_PASSWORD -CEILOMETER_API_SERVICE_HOST=$CEILOMETER_API_SERVICE_HOST -CEILOMETER_API_SERVICE_PORT=$CEILOMETER_API_SERVICE_PORT -CEILOMETER_DB_NAME=$CEILOMETER_DB_NAME -CEILOMETER_DB_PASSWORD=$CEILOMETER_DB_PASSWORD -CEILOMETER_DB_USER=$CEILOMETER_DB_USER -CEILOMETER_KEYSTONE_USER=$CEILOMETER_KEYSTONE_USER -CHAR_SET_SERVER=$CHAR_SET_SERVER -CINDER_ADMIN_PASSWORD=$CINDER_ADMIN_PASSWORD -CINDER_API_LOG_FILE=$CINDER_API_LOG_FILE -CINDER_API_SERVICE_HOST=$HOST_IP -CINDER_API_SERVICE_LISTEN=$MY_IP -CINDER_API_SERVICE_PORT=$CINDER_API_SERVICE_PORT -CINDER_API_VERSION=$CINDER_API_VERSION -CINDER_BACKUP_API_CLASS=$CINDER_BACKUP_API_CLASS -CINDER_BACKUP_DRIVER=$CINDER_BACKUP_DRIVER -CINDER_BACKUP_LOG_FILE=$CINDER_BACKUP_LOG_FILE -CINDER_BACKUP_MANAGER=$CINDER_BACKUP_MANAGER -CINDER_BACKUP_NAME_TEMPLATE=$CINDER_BACKUP_NAME_TEMPLATE -CINDER_DB_NAME=$CINDER_DB_NAME -CINDER_DB_PASSWORD=$CINDER_DB_PASSWORD -CINDER_DB_USER=$CINDER_DB_USER -CINDER_ENABLED_BACKEND=$CINDER_ENABLED_BACKEND -CINDER_KEYSTONE_PASSWORD=$CINDER_KEYSTONE_PASSWORD -CINDER_KEYSTONE_USER=$CINDER_KEYSTONE_USER -CINDER_LOG_DIR=$CINDER_LOG_DIR -CINDER_LVM_LO_VOLUME_SIZE=$CINDER_LVM_LO_VOLUME_SIZE -CINDER_SCHEDULER_LOG_FILE=$CINDER_SCHEDULER_LOG_FILE -CINDER_VOLUME_API_LISTEN=$CINDER_VOLUME_API_LISTEN -CINDER_VOLUME_BACKEND_NAME=$CINDER_VOLUME_BACKEND_NAME -CINDER_VOLUME_DRIVER=$CINDER_VOLUME_DRIVER -CINDER_VOLUME_GROUP=$CINDER_VOLUME_GROUP -CINDER_VOLUME_LOG_FILE=$CINDER_VOLUME_LOG_FILE -COLLATION_SERVER=$COLLATION_SERVER -DATADIR=$DATADIR -DB_CLUSTER_BIND_ADDRESS=$DB_CLUSTER_BIND_ADDRESS -DB_CLUSTER_INIT_DB=$DB_CLUSTER_INIT_DB -DB_CLUSTER_NAME=$DB_CLUSTER_NAME -DB_CLUSTER_NODES=$DB_CLUSTER_NODES -DB_CLUSTER_WSREP_METHOD=$DB_CLUSTER_WSREP_METHOD -DB_ROOT_PASSWORD=$MARIADB_ROOT_PASSWORD -DEBUG_LOGGING=$DEBUG_LOGGING -DEFAULT_STORAGE_ENGINE=$DEFAULT_STORAGE_ENGINE -DELETE_NAMESPACES=$DELETE_NAMESPACES -DESIGNATE_ALLOW_RECURSION=$DESIGNATE_ALLOW_RECURSION -DESIGNATE_API_SERVICE_HOST=$DESIGNATE_API_SERVICE_HOST -DESIGNATE_API_SERVICE_PORT=$DESIGNATE_API_SERVICE_PORT -DESIGNATE_BACKEND=$DESIGNATE_BACKEND -DESIGNATE_BIND9_RNDC_KEY=$DESIGNATE_BIND9_RNDC_KEY -DESIGNATE_DB_NAME=$DESIGNATE_DB_NAME -DESIGNATE_DB_PASSWORD=$DESIGNATE_DB_PASSWORD -DESIGNATE_DB_USER=$DESIGNATE_DB_USER -DESIGNATE_DEFAULT_POOL_NS_RECORD=$DESIGNATE_DEFAULT_POOL_NS_RECORD -DESIGNATE_DNS_PORT=$DESIGNATE_DNS_PORT -DESIGNATE_INITDB=$DESIGNATE_INITDB -DESIGNATE_KEYSTONE_PASSWORD=$DESIGNATE_KEYSTONE_PASSWORD -DESIGNATE_KEYSTONE_USER=$DESIGNATE_KEYSTONE_USER -DESIGNATE_MASTERNS=$DESIGNATE_MASTERNS -DESIGNATE_MDNS_PORT=$DESIGNATE_MDNS_PORT -DESIGNATE_POOLMAN_NSS=$DESIGNATE_POOLMAN_NSS -DESIGNATE_POOLMAN_POOLID=$DESIGNATE_POOLMAN_POOLID -DESIGNATE_POOLMAN_TARGETS=$DESIGNATE_POOLMAN_TARGETS -DESIGNATE_SINK_NEUTRON_DOMAIN_NAME=$DESIGNATE_SINK_NEUTRON_DOMAIN_NAME -DESIGNATE_SINK_NOVA_DOMAIN_NAME=$DESIGNATE_SINK_NOVA_DOMAIN_NAME -DESIGNATE_SLAVENS=$DESIGNATE_SLAVENS -DHCP_DRIVER=$DHCP_DRIVER -DNSMASQ_CONFIG_FILE=$DNSMASQ_CONFIG_FILE -ENABLED_APIS=$ENABLED_APIS -ENDPOINT_TYPE=$ENDPOINT_TYPE -FLAT_INTERFACE=$NOVA_FLAT_INTERFACE -GLANCE_API_SERVICE_HOST=$GLANCE_API_SERVICE_HOST -GLANCE_API_SERVICE_PORT=$GLANCE_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 -GLANCE_REGISTRY_SERVICE_PORT=$GLANCE_REGISTRY_SERVICE_PORT -HEAT_API_CFN_SERVICE_HOST=$HEAT_API_CFN_SERVICE_HOST -HEAT_API_CFN_SERVICE_PORT=$HEAT_API_CFN_SERVICE_PORT -HEAT_API_CFN_URL_HOST=$HEAT_API_CFN_URL_HOST -HEAT_API_SERVICE_HOST=$HEAT_API_SERVICE_HOST -HEAT_API_SERVICE_PORT=$HEAT_API_SERVICE_PORT -HEAT_CFN_KEYSTONE_PASSWORD=$HEAT_CFN_KEYSTONE_PASSWORD -HEAT_CFN_KEYSTONE_USER=$HEAT_CFN_KEYSTONE_USER -HEAT_DB_NAME=$HEAT_DB_NAME -HEAT_DB_PASSWORD=$HEAT_DB_PASSWORD -HEAT_DOMAIN_PASS=$HEAT_DOMAIN_PASS -HEAT_KEYSTONE_PASSWORD=$HEAT_KEYSTONE_PASSWORD -HEAT_KEYSTONE_USER=$HEAT_KEYSTONE_USER -HORIZON_KEYSTONE_USER=$HORIZON_KEYSTONE_USER -HORIZON_SERVICE_PORT=$HORIZON_SERVICE_PORT -INIT_CINDER_DB=$INIT_CINDER_DB -INIT_CONNECT=$INIT_CONNECT -INIT_DESIGNATE_DB=$INIT_DESIGNATE_DB -INIT_GLANCE_DB=$INIT_GLANCE_DB -INIT_MURANO_DB=$INIT_MURANO_DB -INIT_HEAT_DB=$INIT_HEAT_DB -INIT_KEYSTONE_DB=$INIT_KEYSTONE_DB -INIT_NOVA_DB=$INIT_NOVA_DB -INNODB_FILE_PER_TABLE=$INNODB_FILE_PER_TABLE -ISCSI_HELPER=$ISCSI_HELPER -ISCSI_IP_ADDRESS=$ISCSI_IP_ADDRESS -KEEPALIVED_HOST_PRIORITIES=$KEEPALIVED_HOST_PRIORITIES -KEYSTONE_ADMIN_PASSWORD=$KEYSTONE_ADMIN_PASSWORD -KEYSTONE_ADMIN_SERVICE_HOST=$KEYSTONE_ADMIN_SERVICE_HOST -KEYSTONE_ADMIN_SERVICE_PORT=$KEYSTONE_ADMIN_SERVICE_PORT -KEYSTONE_ADMIN_TOKEN=$KEYSTONE_ADMIN_TOKEN -KEYSTONE_API_VERSION=$KEYSTONE_API_VERSION -KEYSTONE_AUTH_PROTOCOL=$KEYSTONE_AUTH_PROTOCOL -KEYSTONE_AUTH_PROTOCOL=$KEYSTONE_AUTH_PROTOCOL -KEYSTONE_DB_NAME=$KEYSTONE_DB_NAME -KEYSTONE_DB_PASSWORD=$KEYSTONE_DB_PASSWORD -KEYSTONE_DB_USER=$KEYSTONE_DB_USER -KEYSTONE_PUBLIC_SERVICE_HOST=$KEYSTONE_PUBLIC_SERVICE_HOST -KEYSTONE_PUBLIC_SERVICE_PORT=$KEYSTONE_PUBLIC_SERVICE_PORT -KEYSTONE_REGION=$KEYSTONE_REGION -KEYSTONE_USER=$KEYSTONE_USER -KOLLA_CONFIG_STRATEGY=CONFIG_INTERNAL -MAGNUM_API_SERVICE_HOST=$MAGNUM_API_SERVICE_HOST -MAGNUM_API_SERVICE_PORT=$MAGNUM_API_SERVICE_PORT -MAGNUM_DB_NAME=$MAGNUM_DB_NAME -MAGNUM_DB_PASSWORD=$MAGNUM_DB_PASSWORD -MAGNUM_DB_USER=$MAGNUM_DB_USER -MAGNUM_KEYSTONE_PASSWORD=$MAGNUM_KEYSTONE_PASSWORD -MAGNUM_KEYSTONE_USER=$MAGNUM_KEYSTONE_USER -MARIADB_MAX_CONNECTIONS=$MARIADB_MAX_CONNECTIONS -MARIADB_ROOT_PASSWORD=$MARIADB_ROOT_PASSWORD -MARIADB_SERVICE_HOST=$HOST_IP -MARIADB_SERVICE_PORT=$MARIADB_SERVICE_PORT -MECHANISM_DRIVERS=$MECHANISM_DRIVERS -METADATA_HOST=$METADATA_HOST -MONGODB_SERVICE_PORT=$MONGODB_SERVICE_PORT -MURANO_DB_NAME=$MURANO_DB_NAME -MURANO_DB_PASSWORD=$MURANO_DB_PASSWORD -MURANO_DB_USER=$MURANO_DB_USER -MURANO_HOST_IP=$MURANO_HOST_IP -MURANO_KEYSTONE_PASSWORD=$MURANO_KEYSTONE_PASSWORD -MURANO_KEYSTONE_USER=$MURANO_KEYSTONE_USER -MURANO_SERVICE_PORT=$MURANO_SERVICE_PORT -MURANO_SERVICE_PROTOCOL=$MURANO_SERVICE_PROTOCOL -NETWORK_MANAGER=$NETWORK_MANAGER -NEUTRON_API_PASTE_CONFIG=$NEUTRON_API_PASTE_CONFIG -NEUTRON_DB_NAME=$NEUTRON_DB_NAME -NEUTRON_DB_PASSWORD=$NEUTRON_DB_PASSWORD -NEUTRON_DB_USER=$NEUTRON_DB_USER -NEUTRON_FLAT_NETWORK_INTERFACE=$NEUTRON_FLAT_NETWORK_INTERFACE -NEUTRON_FLAT_NETWORK_NAME=$NEUTRON_FLAT_NETWORK_NAME -NEUTRON_KEYSTONE_PASSWORD=$NEUTRON_KEYSTONE_PASSWORD -NEUTRON_KEYSTONE_USER=$NEUTRON_KEYSTONE_USER -NEUTRON_L3_AGENT_LOG_FILE=$NEUTRON_L3_AGENT_LOG_FILE -NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE=$NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE -NEUTRON_LOG_DIR=$NEUTRON_LOG_DIR -NEUTRON_METADATA_AGENT_LOG_FILE=$NEUTRON_METADATA_AGENT_LOG_FILE -NEUTRON_SERVER_LOG_FILE=$NEUTRON_SERVER_LOG_FILE -NEUTRON_SERVER_SERVICE_HOST=$NEUTRON_SERVER_SERVICE_HOST -NEUTRON_SERVER_SERVICE_PORT=$NEUTRON_SERVER_SERVICE_PORT -NEUTRON_SHARED_SECRET=$NEUTRON_SHARED_SECRET -NOVA_API_LOG_FILE=$NOVA_API_LOG_FILE -NOVA_API_SERVICE_HOST=$NOVA_API_SERVICE_HOST -NOVA_API_SERVICE_PORT=$NOVA_API_SERVICE_PORT -NOVA_COMPUTE_LOG_FILE=$NOVA_COMPUTE_LOG_FILE -NOVA_CONDUCTOR_LOG_FILE=$NOVA_CONDUCTOR_LOG_FILE -NOVA_CONSOLEAUTH_LOG_FILE=$NOVA_CONSOLEAUTH_LOG_FILE -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_EC2_API_SERVICE_PORT=$NOVA_EC2_API_SERVICE_PORT -NOVA_KEYSTONE_PASSWORD=$NOVA_KEYSTONE_PASSWORD -NOVA_KEYSTONE_USER=$NOVA_KEYSTONE_USER -NOVA_LOG_DIR=$NOVA_LOG_DIR -NOVA_LIBVIRT_SERVICE_PORT=$NOVA_LIBVIRT_SERVICE_PORT -NOVA_METADATA_API_SERVICE_HOST=$NOVA_METADATA_API_SERVICE_HOST -NOVA_METADATA_API_SERVICE_PORT=$NOVA_METADATA_API_SERVICE_PORT -NOVA_NOVNCPROXY_LOG_FILE=$NOVA_NOVNCPROXY_LOG_FILE -NOVA_NOVNC_BASE_ADDRESS=${NOVA_NOVNC_BASE_ADDRESS}RI -NOVA_NOVNC_PROXY_PORT=$NOVA_NOVNC_PROXY_PORT -NOVA_NOVNC_PROXY_SERVICE_HOST=$NOVA_NOVNC_PROXY_SERVICE_HOST -NOVA_SCHEDULER_LOG_FILE=$NOVA_SCHEDULER_LOG_FILE -NOVA_VNCSERVER_LISTEN_ADDRESS=$NOVA_VNCSERVER_LISTEN_ADDRESS -NOVA_VNCSERVER_PROXYCLIENT_ADDRESS=$NOVA_VNCSERVER_PROXYCLIENT_ADDRESS -OVS_DB_FILE=$OVS_DB_FILE -OVS_LOG_FILE=$OVS_LOG_FILE -OVS_UNIXSOCK=$OVS_UNIXSOCK -PUBLIC_INTERFACE=$NOVA_PUBLIC_INTERFACE -PUBLIC_IP=$HOST_IP -RABBITMQ_CLUSTER_COOKIE=$RABBITMQ_CLUSTER_COOKIE -RABBITMQ_CLUSTER_NODES=$RABBITMQ_CLUSTER_NODES -RABBITMQ_PASS=$RABBIT_PASSWORD -RABBITMQ_SERVICE_HOST=$RABBITMQ_SERVICE_HOST -RABBITMQ_SERVICE_PORT=$RABBITMQ_SERVICE_PORT -RABBITMQ_USER=$RABBITMQ_USER -RABBIT_PASSWORD=$RABBIT_PASSWORD -RABBIT_USERID=$RABBIT_USER -ROOT_HELPER=$ROOT_HELPER -SWIFT_ACCOUNT_SVC_BIND_IP=$SWIFT_ACCOUNT_SVC_BIND_IP -SWIFT_ACCOUNT_SVC_BIND_PORT=$SWIFT_ACCOUNT_SVC_BIND_PORT -SWIFT_ACCOUNT_SVC_DEVICES=$SWIFT_ACCOUNT_SVC_DEVICES -SWIFT_ACCOUNT_SVC_MOUNT_CHECK=$SWIFT_ACCOUNT_SVC_MOUNT_CHECK -SWIFT_ADMIN_USER=$SWIFT_ADMIN_USER -SWIFT_API_SERVICE_HOST=$SWIFT_API_SERVICE_HOST -SWIFT_CONTAINER_SVC_BIND_IP=$PUBLIC_IP -SWIFT_CONTAINER_SVC_BIND_PORT=$SWIFT_CONTAINER_SVC_BIND_PORT -SWIFT_CONTAINER_SVC_DEVICES=$SWIFT_CONTAINER_SVC_DEVICES -SWIFT_CONTAINER_SVC_MOUNT_CHECK=$SWIFT_CONTAINER_SVC_MOUNT_CHECK -SWIFT_DIR=$SWIFT_DIR -SWIFT_HASH_PATH_SUFFIX=$SWIFT_HASH_PATH_SUFFIX -SWIFT_KEYSTONE_PASSWORD=$SWIFT_KEYSTONE_PASSWORD -SWIFT_KEYSTONE_USER=$SWIFT_KEYSTONE_USER -SWIFT_OBJECT_SVC_BIND_IP=$SWIFT_OBJECT_SVC_BIND_IP -SWIFT_OBJECT_SVC_BIND_PORT=$SWIFT_OBJECT_SVC_BIND_PORT -SWIFT_OBJECT_SVC_DEVICES=$SWIFT_OBJECT_SVC_DEVICES -SWIFT_OBJECT_SVC_MOUNT_CHECK=$SWIFT_OBJECT_SVC_MOUNT_CHECK -SWIFT_OBJECT_SVC_PIPELINE=$SWIFT_OBJECT_SVC_PIPELINE -SWIFT_PROXY_ACCOUNT_AUTOCREATE=$SWIFT_PROXY_ACCOUNT_AUTOCREATE -SWIFT_PROXY_AUTH_PLUGIN=$SWIFT_PROXY_AUTH_PLUGIN -SWIFT_PROXY_BIND_IP=$SWIFT_PROXY_BIND_IP -SWIFT_PROXY_BIND_PORT=$SWIFT_PROXY_BIND_PORT -SWIFT_PROXY_DELAY_AUTH_DECISION=$SWIFT_PROXY_DELAY_AUTH_DECISION -SWIFT_PROXY_DIR=$SWIFT_PROXY_DIR -SWIFT_PROXY_OPERATOR_ROLES=$SWIFT_PROXY_OPERATOR_ROLES -SWIFT_PROXY_PASSWORD=$SWIFT_PROXY_PASSWORD -SWIFT_PROXY_PIPELINE_MAIN=$SWIFT_PROXY_PIPELINE_MAIN -SWIFT_PROXY_PROJECT_DOMAIN_ID=$SWIFT_PROXY_PROJECT_DOMAIN_ID -SWIFT_PROXY_PROJECT_NAME=$SWIFT_PROXY_PROJECT_NAME -SWIFT_PROXY_SIGNING_DIR=$SWIFT_PROXY_SIGNING_DIR -SWIFT_PROXY_USER_DOMAIN_ID=$SWIFT_PROXY_USER_DOMAIN_ID -SWIFT_PROXY_USERNAME=$SWIFT_PROXY_USERNAME -SWIFT_USER=$SWIFT_USER -SWIFT_OBJECT_SVC_RING_NAME=${SWIFT_OBJECT_SVC_RING_NAME} -SWIFT_OBJECT_SVC_RING_PART_POWER=${SWIFT_OBJECT_SVC_RING_PART_POWER} -SWIFT_OBJECT_SVC_RING_REPLICAS=${SWIFT_OBJECT_SVC_RING_REPLICAS} -SWIFT_OBJECT_SVC_RING_MIN_PART_HOURS=${SWIFT_OBJECT_SVC_RING_MIN_PART_HOURS} -SWIFT_OBJECT_SVC_RING_HOSTS=${SWIFT_OBJECT_SVC_RING_HOSTS} -SWIFT_OBJECT_SVC_RING_DEVICES=${SWIFT_OBJECT_SVC_RING_DEVICES} -SWIFT_OBJECT_SVC_RING_WEIGHTS=${SWIFT_OBJECT_SVC_RING_WEIGHTS} -SWIFT_OBJECT_SVC_RING_ZONES=${SWIFT_OBJECT_SVC_RING_ZONES} -SWIFT_CONTAINER_SVC_RING_NAME=${SWIFT_CONTAINER_SVC_RING_NAME} -SWIFT_CONTAINER_SVC_RING_PART_POWER=${SWIFT_CONTAINER_SVC_RING_PART_POWER} -SWIFT_CONTAINER_SVC_RING_REPLICAS=${SWIFT_CONTAINER_SVC_RING_REPLICAS} -SWIFT_CONTAINER_SVC_RING_MIN_PART_HOURS=${SWIFT_CONTAINER_SVC_RING_MIN_PART_HOURS} -SWIFT_CONTAINER_SVC_RING_HOSTS=${SWIFT_CONTAINER_SVC_RING_HOSTS} -SWIFT_CONTAINER_SVC_RING_DEVICES=${SWIFT_CONTAINER_SVC_RING_DEVICES} -SWIFT_CONTAINER_SVC_RING_WEIGHTS=${SWIFT_CONTAINER_SVC_RING_WEIGHTS} -SWIFT_CONTAINER_SVC_RING_ZONES=${SWIFT_CONTAINER_SVC_RING_ZONES} -SWIFT_ACCOUNT_SVC_RING_NAME=${SWIFT_ACCOUNT_SVC_RING_NAME} -SWIFT_ACCOUNT_SVC_RING_PART_POWER=${SWIFT_ACCOUNT_SVC_RING_PART_POWER} -SWIFT_ACCOUNT_SVC_RING_REPLICAS=${SWIFT_ACCOUNT_SVC_RING_REPLICAS} -SWIFT_ACCOUNT_SVC_RING_MIN_PART_HOURS=${SWIFT_ACCOUNT_SVC_RING_MIN_PART_HOURS} -SWIFT_ACCOUNT_SVC_RING_HOSTS=${SWIFT_ACCOUNT_SVC_RING_HOSTS} -SWIFT_ACCOUNT_SVC_RING_DEVICES=${SWIFT_ACCOUNT_SVC_RING_DEVICES} -SWIFT_ACCOUNT_SVC_RING_WEIGHTS=${SWIFT_ACCOUNT_SVC_RING_WEIGHTS} -SWIFT_ACCOUNT_SVC_RING_ZONES=${SWIFT_ACCOUNT_SVC_RING_ZONES} -TEMP_FILE=$TEMP_FILE -TENANT_NETWORK_TYPES=$TENANT_NETWORK_TYPES -TOKEN_DRIVER=$TOKEN_DRIVER -TOKEN_PROVIDER=$TOKEN_PROVIDER -TYPE_DRIVERS=$TYPE_DRIVERS -USE_NAMESPACES=$USE_NAMESPACES -USE_STDERR=$USE_STDERR -VERBOSE_LOGGING=$VERBOSE_LOGGING -ZAQAR_KEYSTONE_USER=$ZAQAR_KEYSTONE_USER -ZAQAR_SERVER_SERVICE_PORT=$ZAQAR_SERVER_SERVICE_PORT - -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. - diff --git a/tools/init-runonce b/tools/init-runonce index 2efbee1bb0..e7727b82ea 100755 --- a/tools/init-runonce +++ b/tools/init-runonce @@ -16,11 +16,7 @@ export LC_ALL REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')") cd "$(dirname "$REAL_PATH")/.." -NETWORK_MANAGER=$(grep -sri NETWORK_MANAGER ./compose/openstack.env | cut -f2 -d'=') -if [[ -z "$NETWORK_MANAGER" ]]; then - echo 'No network manager defined in ./compose/openstack.env, defaulting to "neutron".' - NETWORK_MANAGER="neutron" -fi +NETWORK_MANAGER="neutron" # Test for credentials set if [[ "${OS_USERNAME}" == "" ]]; then diff --git a/tools/kolla-compose b/tools/kolla-compose deleted file mode 100755 index eeb99bfc54..0000000000 --- a/tools/kolla-compose +++ /dev/null @@ -1,157 +0,0 @@ -#!/bin/bash -# -# This script can be used to interact with kolla. - -# Move to top level directory -REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')") -cd "$(dirname "$REAL_PATH")/.." - -. tools/validate-docker-execute - -NETWORK_MANAGER=$(grep -sri NETWORK_MANAGER ./compose/openstack.env | cut -f2 -d'=') -if [[ -z "$NETWORK_MANAGER" ]]; then - echo 'No network manager defined in ./compose/openstack.env, defaulting to "neutron".' - NETWORK_MANAGER="neutron" -fi - -function process { - local service=$1 - echo "$ACTION $service" - docker-compose -f ./compose/${service}.yml $COMPOSE_CMD - if [[ $? -ne 0 ]]; then - echo "Call docker-compose -f ./compose/${service}.yml $COMPOSE_CMD fail." - exit 1 - fi -} - -function process_all { - process rabbitmq - process mariadb - process keystone - process glance-api-registry - process nova-api-conductor-scheduler-consoleauth-novncproxy - if [[ "${NETWORK_MANAGER}" == "nova" ]] ; then - process nova-compute-network - else - # Defaulting to neutron - process nova-compute - process neutron-server - process neutron-linuxbridge-agent - process neutron-agents - fi - process heat-api-engine - process magnum-api-conductor - process horizon - process cinder-api-scheduler - process cinder-backup - process cinder-volume - process ceilometer - # TODO(coolsvap) add again with resolution for #LP1478145 - #process gnocchi -} - -function check_selinux { - # Check for SELinux in Enforcing mode and exit if found - if [[ -x /usr/sbin/getenforce ]]; then - if [[ $(/usr/sbin/getenforce) == "Enforcing" ]]; then - echo "You must execute this script without SELinux enforcing mode." - echo "Turn off SELinux enforcing mode by running:" - echo "$ sudo setenforce permissive" - exit 1 - fi - fi -} - -function pre_start { - check_selinux - - if [[ -r ./openrc ]]; then - # Source openrc for commands - source ./openrc - else - echo 'Could not find ./openrc; bootstrap your environment with "./tools/genenv".' - exit 1 - fi -} - -function post_start { - echo -n "Waiting for OpenStack services to become available" - - until [ $(nova service-list 2>&1 | grep -c enabled) -ge 4 ]; do - echo -n . - sleep 2 - done - - until [ $(neutron agent-list 2>&1 | grep -c ':-)') -ge 4 ]; do - echo -n . - sleep 2 - done - echo " done" - - echo Example Usage: - echo source openrc # source keystone credentials - - echo Configure your environment once by running: - echo tools/init-runonce -} - -function usage { - cat <<EOF -Usage: $0 COMMAND - -Commands: - pull Pull all of the Docker images - start Start all kolla containers - status List running kolla containers - stop Stop all kolla containers - restart Restart all kolla containers - destroy Kill and remove all kolla containers and volumes -EOF -} - -case "$1" in - -(pull) - ACTION="Pulling" - COMPOSE_CMD="pull" - process_all - ;; - -(start) - ACTION="Starting" - COMPOSE_CMD="up -d" - pre_start - process_all - post_start - ;; - -(restart) - ACTION="Restarting" - COMPOSE_CMD="restart" - process_all - ;; - -(status) - ACTION="Status of" - COMPOSE_CMD="ps" - process_all - ;; - -(stop) - ACTION="Stopping" - COMPOSE_CMD="stop" - process_all - ;; - -(destroy) - ACTION="Destroying" - COMPOSE_CMD="kill" - process_all - COMPOSE_CMD="rm -f -v" - process_all - ;; - -(*) usage - exit 0 - ;; -esac