blob: 74e54a146005404a85babf3b583fe456e420bc0f [file] [log] [blame]
#!/bin/bash -x
exec > >(tee -i /tmp/"$(basename "$0" .sh)"_"$(date '+%Y-%m-%d_%H-%M-%S')".log) 2>&1
CWD="$(dirname "$(readlink -f "$0")")"
# Import common functions
COMMONS="$CWD"/common_functions.sh
if [ ! -f "$COMMONS" ]; then
echo "File $COMMONS does not exist"
exit 1
fi
. "$COMMONS"
INFLUXDB_SERVICE=$(salt -C 'I@influxdb:server' test.ping 1>/dev/null 2>&1 && echo true)
PROMETHEUS_LTS_SERVICE=$(salt -C 'I@prometheus:relay' test.ping 1>/dev/null 2>&1 && echo true)
# Configure Telegraf
salt -C 'I@telegraf:agent or I@telegraf:remote_agent' state.sls telegraf
# Configure Prometheus exporters
salt -C 'I@prometheus:exporters' state.sls prometheus
# Configure fluentd
salt -C 'I@fluentd:agent' state.sls fluentd
# Configure Elasticsearch/Kibana services
salt -C 'I@elasticsearch:server' state.sls elasticsearch.server -b 1
salt -C 'I@kibana:server' state.sls kibana.server -b 1
salt -C 'I@elasticsearch:client' state.sls elasticsearch.client
salt -C 'I@kibana:client' state.sls kibana.client
if [[ "$INFLUXDB_SERVICE" == "true" ]]; then
salt -C 'I@influxdb:server' state.sls influxdb
fi
if [[ "$PROMETHEUS_LTS_SERVICE" == "true" ]]; then
salt -C 'I@prometheus:relay' state.sls prometheus
fi
# Install mongodb for Alerta
salt -C "I@mongodb:server" state.sls mongodb
# Collect grains needed to configure the services
salt -C 'I@salt:minion' state.sls salt.minion.grains
salt -C 'I@salt:minion' saltutil.refresh_modules
salt -C 'I@salt:minion' mine.update
sleep 5
# Generate the configuration for prometheus running in Docker Swarm
salt -C 'I@docker:swarm' state.sls prometheus -b 1
# Generate the configuration for remote_collector running in Docker Swarm
salt -C 'I@docker:swarm' state.sls heka.remote_collector -b 1
# Kick off the services in Docker Swarm
salt -C 'I@docker:swarm:role:master' state.sls docker
salt -C 'I@docker:swarm' dockerng.ps
# Configure the Grafana dashboards and datasources
stacklight_vip=$(get_param_value stacklight_monitor_address)
wait_for_http_service "http://${stacklight_vip}:15013/"
salt -C 'I@grafana:client' state.sls grafana.client