201 lines
6.1 KiB
Bash
Executable File
201 lines
6.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
USE_DOCKER=1 # Docker or tarball
|
|
USE_ALPHA=0 # alpha or nightly
|
|
DEBUG=0
|
|
ACTION="setup"
|
|
TAR_DOWNLOAD="https://dl.influxdata.com/influxdb/releases/influxdb_2.0.0-alpha.1_linux_amd64.tar.gz"
|
|
DOCKER_IMAGE="quay.io/influxdb/influx:nightly"
|
|
INSTANCE_NAME="influx2_solo"
|
|
INFLUX2_HOME="${HOME}/.influxdbv2"
|
|
LOG_DIR=${PWD}/log
|
|
LOG_FILE=${LOG_DIR}/docker.log
|
|
TELEGRAF_DOWNLOAD="https://dl.influxdata.com/telegraf/releases/telegraf_1.8.2-1_amd64.deb"
|
|
|
|
|
|
download_telegraf(){
|
|
echo "["$(date +"%d.%m.%Y %T")"] downloading telegraf.deb - if changed"
|
|
#curl -s -o telegraf.deb -z telegraf.deb https://dl.influxdata.com/telegraf/releases/telegraf_1.7.2-1_amd64.deb
|
|
curl -s -o telegraf.deb -z telegraf.deb https://dl.influxdata.com/telegraf/releases/telegraf_1.8.2-1_amd64.deb
|
|
}
|
|
|
|
install_telegraf(){
|
|
echo "["$(date +"%d.%m.%Y %T")"] installing telegraf.deb - if changed"
|
|
sudo dpkg -i telegraf.deb
|
|
echo "["$(date +"%d.%m.%Y %T")"] installed telegraf.deb - if changed"
|
|
}
|
|
|
|
|
|
stop_telegraf(){
|
|
|
|
echo "["$(date +"%d.%m.%Y %T")"] stoping telegraf.service - if changed"
|
|
sudo systemctl stop telegraf.service
|
|
echo "["$(date +"%d.%m.%Y %T")"] stoped telegraf.service - if changed"
|
|
|
|
}
|
|
|
|
pull_docker(){
|
|
echo "["$(date +"%d.%m.%Y %T")"] pulling ${DOCKER_IMAGE}"
|
|
docker pull ${DOCKER_IMAGE}
|
|
}
|
|
|
|
run_docker_influx(){
|
|
mkdir -p ${LOG_DIR}
|
|
echo "["$(date +"%d.%m.%Y %T")"] starting docker instance ${INSTANCE_NAME}"
|
|
sudo docker run --name ${INSTANCE_NAME} --publish 8086:8086 ${DOCKER_IMAGE} > ${LOG_FILE} 2>&1 &
|
|
echo "["$(date +"%d.%m.%Y %T")"] started instance $INSTANCE_NAME listening at port 8086."
|
|
echo "logfile at $LOG_FILE"
|
|
sleep 3
|
|
echo "\n$(tail -n32 $LOG_FILE)\n"
|
|
}
|
|
|
|
run_docker_influx_test_env(){
|
|
|
|
mkdir -p ${LOG_DIR}
|
|
sudo docker stop $INSTANCE_NAME
|
|
sudo docker rm $INSTANCE_NAME
|
|
sudo docker pull quay.io/influxdb/influx:nightly
|
|
sudo docker build -t influxdb_test_image .
|
|
sudo docker run --name $INSTANCE_NAME --publish 8086:8086 influxdb_test_image > ${LOG_FILE} 2>&1 &
|
|
|
|
}
|
|
|
|
stop_docker_influx(){
|
|
if [ "$(sudo docker ps -q -f name=$INSTANCE_NAME)" ] ; then
|
|
echo "["$(date +"%d.%m.%Y %T")"] stopping docker instance ${INSTANCE_NAME}"
|
|
sudo docker stop ${INSTANCE_NAME}
|
|
echo "["$(date +"%d.%m.%Y %T")"] stopped $INSTANCE_NAME"
|
|
fi
|
|
}
|
|
|
|
remove_docker_influx(){
|
|
if [ "$(sudo docker ps -a -q -f name=$INSTANCE_NAME)" ] ; then
|
|
echo "["$(date +"%d.%m.%Y %T")"] removing docker instance ${INSTANCE_NAME}"
|
|
sudo docker rm ${INSTANCE_NAME}
|
|
echo "["$(date +"%d.%m.%Y %T")"] removed $INSTANCE_NAME"
|
|
fi
|
|
}
|
|
|
|
clean_influx_home(){
|
|
echo "["$(date +"%d.%m.%Y %T")"] cleaning ${INFLUX2_HOME}"
|
|
sudo rm -rf ${INFLUX2_HOME}
|
|
echo "["$(date +"%d.%m.%Y %T")"] cleaned ${INFLUX2_HOME}"
|
|
}
|
|
|
|
usage(){
|
|
echo "usage $0"
|
|
echo " -a|--alpha use alpha release - otherwise nightly build is used"
|
|
echo " -t|--tarball use tarball build - otherwise docker is used"
|
|
echo " -n|--name set name of docker container - default $INSTANCE_NAME"
|
|
echo " setup|start start the service daemon - default action"
|
|
echo " shutdown|stop shutdown the service daemon"
|
|
echo " clean clean(remove) local directory ${INFLUX_HOME}"
|
|
echo " -h|--help print this message"
|
|
}
|
|
|
|
# Will need to get the telegraf config on first creating org
|
|
# then restart telegraf... Will be part of test cases
|
|
|
|
while [ "$1" != "" ]; do
|
|
case $1 in
|
|
-a | --alpha ) USE_ALPHA=1
|
|
DOCKER_IMAGE="quay.io/influxdb/influxdb:2.0.0-alpha"
|
|
;;
|
|
-t | --tarball ) USE_DOCKER=0
|
|
;;
|
|
-n | --name ) shift
|
|
INSTANCE_NAME=$1
|
|
;;
|
|
setup | start ) ACTION="setup"
|
|
;;
|
|
setup-qa | start-qa ) ACTION="setup-qa"
|
|
;;
|
|
stop | shutdown ) ACTION="stop"
|
|
;;
|
|
clean ) ACTION="clean"
|
|
;;
|
|
-h | --help ) usage
|
|
exit
|
|
;;
|
|
-d | --debug ) DEBUG=1
|
|
;;
|
|
* ) usage
|
|
exit 1
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ $DEBUG -gt 0 ] ; then
|
|
echo "USE_DOCKER $USE_DOCKER"
|
|
echo "USE_ALPHA $USE_ALPHA"
|
|
echo "ACTION $ACTION"
|
|
echo "TAR_DOWNLOAD $TAR_DOWNLOAD"
|
|
echo "DOCKER_IMAGE $DOCKER_IMAGE"
|
|
echo "INSTANCE_NAME $INSTANCE_NAME"
|
|
echo "INFLUX2_HOME $INFLUX2_HOME"
|
|
echo "LOG_FILE $LOG_FILE"
|
|
echo "TELEGRAF_DOWNLOAD $TELEGRAF_DOWNLOAD"
|
|
fi
|
|
|
|
if [ $USE_ALPHA -ne 0 ] ; then
|
|
echo "USING ALPHA"
|
|
fi
|
|
|
|
if [ $USE_ALPHA -eq 0 ] && [ $USE_DOCKER -eq 0 ] ; then
|
|
echo "Nightly builds with tar balls not supported at this time"
|
|
exit 1
|
|
fi
|
|
|
|
if [ $USE_DOCKER -eq 0 ] ; then
|
|
echo "tarball install - not yet supported"
|
|
exit
|
|
fi
|
|
|
|
#if [ $USE_ALPHA -eq 0 ] && [ $USE_DOCKER -gt 0 ] ; then
|
|
case $ACTION in
|
|
setup ) stop_docker_influx
|
|
remove_docker_influx
|
|
download_telegraf
|
|
pull_docker
|
|
run_docker_influx
|
|
;;
|
|
setup-qa) run_docker_influx_test_env
|
|
;;
|
|
stop ) stop_docker_influx
|
|
;;
|
|
clean ) clean_influx_home
|
|
;;
|
|
* ) echo "Unhandled ACTION $ACTION"
|
|
exit 1
|
|
esac
|
|
|
|
#if [ "$ACTION" = "setup" ] ; then
|
|
# stop_docker_influx
|
|
# remove_docker_influx
|
|
# download_telegraf
|
|
# install_telegraf
|
|
# stop_telegraf
|
|
# pull_docker_nightly
|
|
# run_docker_influx
|
|
#elif [ "$ACTION" = "stop" ] ; then # stop docker nightly
|
|
# stop_docker_influx
|
|
# else
|
|
# echo "Unhandled ACTION $ACTION"
|
|
# exit 1
|
|
#fi
|
|
#fi
|
|
|
|
#if [ -z $1 ] ; then # check if first cmdline param is not set
|
|
# echo "["$(date +"%d.%m.%Y %T")"] USAGE: $0 [setup|start|stop]"
|
|
#elif [ "$1" = "setup" ] || [ "$1" = "start" ] ; then
|
|
# stop_docker_influx
|
|
# remove_docker_influx
|
|
# download_telegraf
|
|
## install_telegraf
|
|
## stop_telegraf
|
|
# pull_docker_nightly
|
|
# run_docker_influx
|
|
#elif [ "$1" = "stop" ] ; then
|
|
# stop_docker_influx
|
|
#fi
|