Changes to the repository layout to incorporate the following:
1. Migrate to dedicated repository
2. Rebranding osbash to openstack-labs
3. Adding Python specific bits
4. Allowing a wrapper and switch to osbash meanwhile the
python scripts (stacktrain) is underprogress
The current repository structure will allow us to carry out the above
mentioned changes while the stable code base is usable and will also
allow us to update the version of OpenStack being deployed on osbash.
This is the rough sketch of the repository ignoring the boilerplate:
.
|-- doc
|-- openstack-labs
| |-- img
| |-- osbash
| | |-- config
| | |-- lib
| | |-- tools
| | |-- scripts
| | |-- osbash.sh
| | `-- wbatch
| |-- stacktrain
| | `-- lib
| `-- stacktrain.py
`-- oslabs.py
Note: Also adds/edits existing boilerplate (README's, Tools etc.)
Co-Authored-By: Roger Luethi <rl@patchworkscience.org>
Co-Authored-By: Sayali Lunkad <sayali.92720@gmail.com>
174 lines
6.2 KiB
Bash
Executable File
174 lines
6.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -o errexit -o nounset
|
|
TOP_DIR=$(cd "$(dirname "$0")/.." && pwd)
|
|
source "$TOP_DIR/config/paths"
|
|
source "$CONFIG_DIR/credentials"
|
|
source "$LIB_DIR/functions.guest"
|
|
source "$CONFIG_DIR/openstack"
|
|
|
|
exec_logfile
|
|
|
|
indicate_current_auto
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Install the Telemetry service
|
|
# http://docs.openstack.org/juno/install-guide/install/apt/content/ceilometer-controller-install.html
|
|
#------------------------------------------------------------------------------
|
|
|
|
echo "Setting up database for telemetry."
|
|
|
|
echo "Installing the MongoDB packages."
|
|
sudo apt-get install -y mongodb-server mongodb-clients python-pymongo
|
|
|
|
echo "Configuring mongodb.conf."
|
|
conf=/etc/mongodb.conf
|
|
iniset_sudo_no_section $conf bind_ip "$(hostname_to_ip controller-mgmt)"
|
|
iniset_sudo_no_section $conf smallfiles true
|
|
|
|
echo "Restarting mongodb."
|
|
sudo service mongodb restart
|
|
|
|
echo "Waiting for mongodb to start."
|
|
while sudo service mongodb status 2>/dev/null | grep "stop"; do
|
|
sleep 5
|
|
echo -n .
|
|
done
|
|
|
|
ceilometer_admin_user=$(service_to_user_name ceilometer)
|
|
ceilometer_admin_password=$(service_to_user_password ceilometer)
|
|
|
|
mongodb_user=$(service_to_db_user ceilometer)
|
|
mongodb_password=$(service_to_db_password ceilometer)
|
|
|
|
echo "Creating the ceilometer database."
|
|
mongo --host "$(hostname_to_ip controller-mgmt)" --eval "
|
|
db = db.getSiblingDB(\"ceilometer\");
|
|
db.addUser({user: \"${mongodb_user}\",
|
|
pwd: \"${mongodb_password}\",
|
|
roles: [ \"readWrite\", \"dbAdmin\" ]})"
|
|
|
|
echo "Sourcing the admin credentials."
|
|
source "$CONFIG_DIR/admin-openstackrc.sh"
|
|
|
|
echo "Creating ceilometer user and giving it admin role under service tenant."
|
|
keystone user-create \
|
|
--name "$ceilometer_admin_user" \
|
|
--pass "$ceilometer_admin_password" \
|
|
|
|
keystone user-role-add \
|
|
--user "$ceilometer_admin_user" \
|
|
--tenant "$SERVICE_TENANT_NAME" \
|
|
--role "$ADMIN_ROLE_NAME"
|
|
|
|
echo "Registering ceilometer with keystone so that other services can locate it."
|
|
keystone service-create \
|
|
--name ceilometer \
|
|
--type metering \
|
|
--description "Telemetry"
|
|
|
|
ceilometer_service_id=$(keystone service-list | awk '/ metering / {print $2}')
|
|
keystone endpoint-create \
|
|
--service-id "$ceilometer_service_id" \
|
|
--publicurl "http://controller-api:8777" \
|
|
--internalurl "http://controller-mgmt:8777" \
|
|
--adminurl "http://controller-mgmt:8777" \
|
|
--region "$REGION"
|
|
|
|
echo "Installing ceilometer."
|
|
sudo apt-get install -y ceilometer-api ceilometer-collector \
|
|
ceilometer-agent-central \
|
|
ceilometer-agent-notification \
|
|
ceilometer-alarm-evaluator \
|
|
ceilometer-alarm-notifier \
|
|
python-ceilometerclient
|
|
|
|
function get_database_url {
|
|
local db_user=$(service_to_db_user ceilometer)
|
|
local db_password=$(service_to_db_password ceilometer)
|
|
local database_host=controller-mgmt
|
|
|
|
echo "mongodb://$db_user:$db_password@$database_host:27017/ceilometer"
|
|
}
|
|
|
|
database_url=$(get_database_url)
|
|
echo "Database connection: $database_url."
|
|
|
|
echo "Configuring ceilometer.conf."
|
|
conf=/etc/ceilometer/ceilometer.conf
|
|
iniset_sudo $conf database connection "$database_url"
|
|
|
|
# Configure RabbitMQ variables
|
|
iniset_sudo $conf DEFAULT rpc_backend rabbit
|
|
iniset_sudo $conf DEFAULT rabbit_host controller-mgmt
|
|
iniset_sudo $conf DEFAULT rabbit_password "$RABBIT_PASSWORD"
|
|
|
|
# Configure the [DEFAULT] section
|
|
iniset_sudo $conf DEFAULT auth_strategy keystone
|
|
|
|
iniset_sudo $conf keystone_authtoken auth_uri "http://controller-mgmt:5000/v2.0"
|
|
iniset_sudo $conf keystone_authtoken identity_uri "http://controller-mgmt:35357"
|
|
iniset_sudo $conf keystone_authtoken admin_tenant_name "$SERVICE_TENANT_NAME"
|
|
iniset_sudo $conf keystone_authtoken admin_user "$ceilometer_admin_user"
|
|
iniset_sudo $conf keystone_authtoken admin_password "$ceilometer_admin_password"
|
|
|
|
iniset_sudo $conf service_credentials os_auth_url "http://controller-mgmt:5000/v2.0"
|
|
iniset_sudo $conf service_credentials os_username "$ceilometer_admin_user"
|
|
iniset_sudo $conf service_credentials os_tenant_name "$SERVICE_TENANT_NAME"
|
|
iniset_sudo $conf service_credentials os_password "$ceilometer_admin_password"
|
|
|
|
iniset_sudo $conf publisher metering_secret "$METERING_SECRET"
|
|
|
|
iniset_sudo $conf DEFAULT verbose True
|
|
|
|
|
|
echo "Restarting telemetry service."
|
|
sudo service ceilometer-agent-central restart
|
|
sudo service ceilometer-agent-notification restart
|
|
sudo service ceilometer-api restart
|
|
sudo service ceilometer-collector restart
|
|
sudo service ceilometer-alarm-evaluator restart
|
|
sudo service ceilometer-alarm-notifier restart
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Configure the Image service
|
|
# http://docs.openstack.org/juno/install-guide/install/apt/content/ceilometer-glance.html
|
|
#------------------------------------------------------------------------------
|
|
|
|
# Configure the Image Service to send notifications to the message bus
|
|
|
|
echo "Configuring glance-api.conf."
|
|
conf=/etc/glance/glance-api.conf
|
|
|
|
iniset_sudo $conf DEFAULT notification_driver messagingv2
|
|
iniset_sudo $conf DEFAULT rpc_backend rabbit
|
|
iniset_sudo $conf DEFAULT rabbit_host controller-mgmt
|
|
iniset_sudo $conf DEFAULT rabbit_password "$RABBIT_PASSWORD"
|
|
|
|
echo "Configuring glance-registry.conf."
|
|
conf=/etc/glance/glance-registry.conf
|
|
|
|
iniset_sudo $conf DEFAULT notification_driver messagingv2
|
|
iniset_sudo $conf DEFAULT rpc_backend rabbit
|
|
iniset_sudo $conf DEFAULT rabbit_host controller-mgmt
|
|
iniset_sudo $conf DEFAULT rabbit_password "$RABBIT_PASSWORD"
|
|
|
|
sudo service glance-registry restart
|
|
sudo service glance-api restart
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Configure the Block Storage service
|
|
# http://docs.openstack.org/juno/install-guide/install/apt/content/ceilometer-cinder.html
|
|
#------------------------------------------------------------------------------
|
|
|
|
# Configure the Block Storage Service to send notifications to the message bus
|
|
|
|
echo "Configuring cinder.conf."
|
|
conf=/etc/cinder/cinder.conf
|
|
|
|
iniset_sudo $conf DEFAULT control_exchange cinder
|
|
iniset_sudo $conf DEFAULT notification_driver messagingv2
|
|
|
|
echo "Restarting cinder services."
|
|
sudo service cinder-api restart
|
|
sudo service cinder-scheduler restart
|