110 lines
3.3 KiB
Bash
Executable File
110 lines
3.3 KiB
Bash
Executable File
#!/bin/bash -xe
|
|
|
|
export MONASCA_VAGRANT_REPO=https://git.openstack.org/openstack/monasca-vagrant
|
|
export DEVSTACK_REPO=https://git.openstack.org/openstack-dev/devstack.git
|
|
export CEILOMETER_REPO=https://git.openstack.org/openstack/ceilometer
|
|
|
|
export BASE_DIR=~
|
|
export WORK_DIR=$BASE_DIR/monasca-vagrant
|
|
export PREFERRED_BRANCH=stable/liberty
|
|
export DEVSTACK_DIR=$BASE_DIR/devstack
|
|
export DEVSTACK_IP=192.168.10.5
|
|
export MINIMON_IP=192.168.10.4
|
|
export NETWORK_IF=eth0
|
|
export CEILOSCA_USER=$USER
|
|
export DEVSTACK_DEST=/opt/stack
|
|
export CEILOMETER_DEST=$DEVSTACK_DEST/ceilometer
|
|
|
|
#The following variables are used by, modified devstack ceilometer (deployer/devstack/ceilometer) script
|
|
export TARGET_IP=127.0.0.1
|
|
export MONASCA_API_URL=http://$TARGET_IP:8070/v2.0
|
|
export CEILOSCA_DIR=${PWD}
|
|
export CEILOSCA_FILES='ceilometer/monasca_client.py ceilometer/publisher/monasca_data_filter.py ceilometer/publisher/monclient.py ceilometer/storage/impl_monasca.py setup.cfg'
|
|
export CEILOSCA_CONF_FILES='pipeline.yaml monasca_field_definitions.yaml';
|
|
|
|
clear_env()
|
|
{
|
|
unset OS_USERNAME OS_PASSWORD OS_PROJECT_NAME OS_AUTH_URL
|
|
}
|
|
|
|
download_ceilometer()
|
|
{
|
|
if [ ! -d $DEVSTACK_DEST ]; then
|
|
sudo mkdir -p $DEVSTACK_DEST
|
|
sudo chown $CEILOSCA_USER $DEVSTACK_DEST
|
|
fi
|
|
|
|
git clone -b $PREFERRED_BRANCH $CEILOMETER_REPO $CEILOMETER_DEST || true
|
|
cp deployer/devstack/settings $CEILOMETER_DEST/devstack
|
|
cp deployer/devstack/plugin.sh $CEILOMETER_DEST/devstack
|
|
}
|
|
|
|
setup_devstack()
|
|
{
|
|
git clone -b $PREFERRED_BRANCH $DEVSTACK_REPO $DEVSTACK_DIR || true
|
|
cp deployer/devstack/local.conf $DEVSTACK_DIR
|
|
pushd $DEVSTACK_DIR
|
|
./unstack.sh || true
|
|
./stack.sh
|
|
popd
|
|
}
|
|
|
|
install_ansible()
|
|
{
|
|
sudo apt-get install software-properties-common
|
|
sudo apt-add-repository -y ppa:ansible/ansible
|
|
sudo apt-get update
|
|
sudo apt-get -y install ansible
|
|
}
|
|
|
|
get_monasca_files()
|
|
{
|
|
git clone $MONASCA_VAGRANT_REPO $WORK_DIR || true
|
|
pushd $WORK_DIR
|
|
ansible-galaxy install -r requirements.yml -p ./roles --ignore-errors
|
|
popd
|
|
}
|
|
|
|
disable_monasca_ui_role()
|
|
{
|
|
if [ -f $WORK_DIR/roles/monasca-ui/tasks/main.yml ]; then
|
|
rm $WORK_DIR/roles/monasca-ui/tasks/main.yml
|
|
file_list=$(find $WORK_DIR/roles -type f -exec grep -l get_url: {} +)
|
|
for filename in $file_list; do
|
|
sed -i.bak 's/ timeout=[0-9]\+//' $filename
|
|
sed -i '/get_url:/s/$/ timeout=600/' $filename
|
|
done
|
|
fi
|
|
|
|
}
|
|
|
|
add_to_etc_hosts()
|
|
{
|
|
if ! grep -q "$TARGET_IP devstack mini-mon" /etc/hosts; then
|
|
sudo bash -c "echo $TARGET_IP devstack mini-mon >> /etc/hosts"
|
|
fi
|
|
}
|
|
|
|
add_monasca_ips_to_local_net_if()
|
|
{
|
|
sudo ip addr add $DEVSTACK_IP/24 dev $NETWORK_IF || true
|
|
sudo ip addr add $MINIMON_IP/24 dev $NETWORK_IF || true
|
|
}
|
|
|
|
run_ceilosca()
|
|
{
|
|
cd $WORK_DIR
|
|
ansible-playbook -u $CEILOSCA_USER -c local -k -i "devstack," devstack.yml
|
|
ansible-playbook -u $CEILOSCA_USER -c local -k -i "mini-mon," mini-mon.yml -e 'database_type=influxdb' -e 'influxdb_version=0.9.4.2'
|
|
}
|
|
|
|
clear_env
|
|
download_ceilometer
|
|
setup_devstack
|
|
install_ansible
|
|
get_monasca_files
|
|
disable_monasca_ui_role
|
|
add_to_etc_hosts
|
|
add_monasca_ips_to_local_net_if
|
|
run_ceilosca
|