#!/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 password ADMIN_USER_PASSWORD=steakfordinner # Database HOST_IP=$MY_IP INIT_CINDER_DB=true INIT_DESIGNATE_DB=true INIT_GLANCE_DB=true INIT_HEAT_DB=true INIT_KEYSTONE_DB=true INIT_NOVA_DB=true MARIADB_ROOT_PASSWORD=kolla MARIADB_MAX_CONNECTIONS=151 PASSWORD=12345 # 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 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= CINDER_LOG_DIR= CINDER_API_LOG_FILE= CINDER_VOLUME_LOG_FILE= CINDER_BACKUP_LOG_FILE= CINDER_SCHEDULER_LOG_FILE= # RabbitMQ RABBITMQ_SERVICE_HOST=$HOST_IP RABBITMQ_CLUSTER_NODES= RABBITMQ_CLUSTER_COOKIE= 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_PUBLIC_SERVICE_PORT=5000 KEYSTONE_ADMIN_SERVICE_HOST=$HOST_IP KEYSTONE_ADMIN_SERVICE_PORT=35357 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 # 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 # 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_USER=heat HEAT_KEYSTONE_PASSWORD=heat HEAT_CFN_KEYSTONE_USER=heat-cfn HEAT_CFN_KEYSTONE_PASSWORD=heat HEAT_API_SERVICE_HOST=$HOST_IP HEAT_API_CFN_SERVICE_HOST=$HOST_IP HEAT_API_CFN_SERVICE_PORT=8000 HEAT_API_CFN_URL_HOST=$HOST_IP HEAT_DOMAIN_PASS=$(openssl rand -hex 8) # 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 # 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") # Cinder API CINDER_API_SERVICE_HOST=$HOST_IP CINDER_API_SERVICE_PORT=8776 CINDER_API_SERVICE_LISTEN=$HOST_IP CINDER_KEYSTONE_USER=cinder CINDER_KEYSTONE_PASSWORD=password CINDER_ADMIN_PASSWORD=password # Cinder Scheduler CINDER_DB_NAME=cinder CINDER_DB_USER=cinder CINDER_DB_PASSWORD=password # Cinder Backup CINDER_BACKUP_MANAGER=cinder.backup.manager.BackupManager CINDER_BACKUP_API_CLASS=cinder.backup.api.API CINDER_BACKUP_NAME_TEMPLATE=backup-%s CINDER_BACKUP_DRIVER=cinder.backup.drivers.swift # Cinder Volume ISCSI_HELPER=tgtadm ISCSI_IP_ADDRESS=$HOST_IP CINDER_LVM_LO_VOLUME_SIZE=4G CINDER_VOLUME_API_LISTEN=$HOST_IP CINDER_VOLUME_GROUP=cinder-volumes CINDER_VOLUME_BACKEND_NAME=LVM_iSCSI57 CINDER_VOLUME_DRIVER=cinder.volume.drivers.lvm.LVMISCSIDriver CINDER_ENABLED_BACKEND=lvm57 # Keepalived # Here we define pairs hostname:priority. Priorities have to be unique KEEPALIVED_HOST_PRIORITIES=host1:100,host2:99 #Barbican BARBICAN_DB_USER=barbican BARBICAN_DB_NAME=barbican KEYSTONE_AUTH_PROTOCOL=http BARBICAN_KEYSTONE_USER=barbican ADMIN_TENANT_NAME=admin #Ceilometer CEILOMETER_ADMIN_PASSWORD=password CEILOMETER_API_SERVICE_HOST=$HOST_IP CEILOMETER_DB_NAME=ceilometer CEILOMETER_DB_PASSWORD=password CEILOMETER_DB_USER=ceilometer CEILOMETER_KEYSTONE_USER=ceilometer # this should use the keystone admin port # https://bugs.launchpad.net/kolla/+bug/1469209 cat > ./openrc < ./compose/openstack.env <