|
@@ -0,0 +1,170 @@
|
|
|
|
+#!/usr/bin/env bash
|
|
|
|
+
|
|
|
|
+ROOT=$(id -u)
|
|
|
|
+if [ "$ROOT" != "0" ];
|
|
|
|
+then
|
|
|
|
+ echo "Este comando debe ejecutarse como root."
|
|
|
|
+ exit 0
|
|
|
|
+fi
|
|
|
|
+###################################################################
|
|
|
|
+if [ "$1" = "-h" ] || [ "$1" = "--help" ];
|
|
|
|
+then
|
|
|
|
+ echo "Comando para instalar flowdat."
|
|
|
|
+ echo "Si no se pasan parametros se ejecuta el script completo preguntando los datos necesarios"
|
|
|
|
+ echo "Parametros:"
|
|
|
|
+ echo "\t--ansible\tEjecuta la linea del ansible"
|
|
|
|
+ exit 1
|
|
|
|
+fi
|
|
|
|
+###################################################################
|
|
|
|
+fcGetYesNo() {
|
|
|
|
+ while true;
|
|
|
|
+ do
|
|
|
|
+ read VALUEYESNO
|
|
|
|
+ if [ "$VALUEYESNO" = "" ] || [ "$VALUEYESNO" = "y" ] || [ "$VALUEYESNO" = "Y" ] || [ "$VALUEYESNO" = "yes" ] || [ "$VALUEYESNO" = "YES" ];
|
|
|
|
+ then
|
|
|
|
+ VALUEYESNO=1
|
|
|
|
+ return
|
|
|
|
+ fi
|
|
|
|
+ if [ "$VALUEYESNO" = "n" ] || [ "$VALUEYESNO" = "N" ] || [ "$VALUEYESNO" = "no" ] || [ "$VALUEYESNO" = "NO" ];
|
|
|
|
+ then
|
|
|
|
+ VALUEYESNO=0
|
|
|
|
+ return
|
|
|
|
+ fi
|
|
|
|
+ done
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+fcCheckExecution () {
|
|
|
|
+ if [ $? -eq 0 ];
|
|
|
|
+ then
|
|
|
|
+ return
|
|
|
|
+ else
|
|
|
|
+ echo "Algunos comandos no se ejecutaron correctamente."
|
|
|
|
+ exit 0
|
|
|
|
+ fi
|
|
|
|
+}
|
|
|
|
+###################################################################
|
|
|
|
+DIRINSTALLDEFAULT="/opt/flowdat"
|
|
|
|
+GITDEFUALT="git clone git@bitbucket.org:ikflowdat/installer.git ."
|
|
|
|
+###################################################################
|
|
|
|
+if [ "$1" != "--ansible" ];
|
|
|
|
+then
|
|
|
|
+ FILEANSIBLE="#!/bin/bash\ncd ..\neval \$(cat mysql.host.env running.env) ansible-playbook -i inventory.ini -u root playbook.yml"
|
|
|
|
+ ###################################################################
|
|
|
|
+ echo "Ingrese el nombre del cliente para la instalacion. Ej.: galvez"
|
|
|
|
+ read CLIENTNAME
|
|
|
|
+ echo "Ingrese el nombre del dominio. Ej.: flowdat.net"
|
|
|
|
+ read DOMAINNAME
|
|
|
|
+ echo ""
|
|
|
|
+ echo ""
|
|
|
|
+ echo "Las url seran base.$CLIENTNAME.$DOMAINNAME. Si esto NO es correcto aborte la ejecucion con ctrl+c"
|
|
|
|
+ echo ""
|
|
|
|
+ echo ""
|
|
|
|
+ ###################################################################
|
|
|
|
+ echo "Instalar componentes base? (Y/n)"
|
|
|
|
+ VALUEYESNO=1
|
|
|
|
+ fcGetYesNo
|
|
|
|
+ if [ "$VALUEYESNO" = "1" ];
|
|
|
|
+ then
|
|
|
|
+ ## no se utiliza un && porque pueden existir error del apt en la consulta de los repo
|
|
|
|
+ apt-get update && apt-get install curl git python
|
|
|
|
+ curl https://bootstrap.pypa.io/get-pip.py | python
|
|
|
|
+ pip install -U pip setuptools
|
|
|
|
+ curl -fsSL get.docker.com | sh
|
|
|
|
+ pip install docker-compose==1.22
|
|
|
|
+ fcCheckExecution
|
|
|
|
+ fi
|
|
|
|
+ ###################################################################
|
|
|
|
+ DIRINSTALL=$DIRINSTALLDEFAULT
|
|
|
|
+ echo "Ingrese el directorio de instalacion: (default: $DIRINSTALLDEFAULT)"
|
|
|
|
+ read DIRINSTALL
|
|
|
|
+ if [ "$DIRINSTALL" = "" ];
|
|
|
|
+ then
|
|
|
|
+ DIRINSTALL=$DIRINSTALLDEFAULT
|
|
|
|
+ fi
|
|
|
|
+ mkdir -p $DIRINSTALL
|
|
|
|
+ ###################################################################
|
|
|
|
+ DOCKERMAKEINSTALL="docker run -it -v $DIRINSTALL:$DIRINSTALL -v /var/run/docker.sock:/tmp/docker.sock dind make:install $DIRINSTALL --client=$CLIENTNAME --domain=$DOMAINNAME"
|
|
|
|
+ DOCKERGETSOURCE="docker run -it -v $DIRINSTALL:$DIRINSTALL -v /var/run/docker.sock:/tmp/docker.sock dind get:source $DIRINSTALL/git.ini --timeout=120"
|
|
|
|
+ DOCKERFIXNGINX="docker run -it -v $DIRINSTALL:$DIRINSTALL -v /var/run/docker.sock:/tmp/docker.sock dind fix:nginx $DIRINSTALL"
|
|
|
|
+ ###################################################################
|
|
|
|
+ echo "Ingresando al directorio $DIRINSTALL"
|
|
|
|
+ cd $DIRINSTALL
|
|
|
|
+ ###################################################################
|
|
|
|
+ GIT=$GITDEFUALT
|
|
|
|
+ echo "Ingrese repositorio git a instalar. Si queda en blanco no se realiza el pull.: (default: $GITDEFUALT)"
|
|
|
|
+ read GIT
|
|
|
|
+ if [ "$GIT" != "" ];
|
|
|
|
+ then
|
|
|
|
+ eval $GIT
|
|
|
|
+ fi
|
|
|
|
+ ###################################################################
|
|
|
|
+ echo "Ingresando al directorio $DIRINSTALL/tools"
|
|
|
|
+ cd tools
|
|
|
|
+ ###################################################################
|
|
|
|
+ echo "Construimos el dind?(Y/n)"
|
|
|
|
+ VALUEYESNO=1
|
|
|
|
+ fcGetYesNo
|
|
|
|
+ if [ "$VALUEYESNO" = "1" ];
|
|
|
|
+ then
|
|
|
|
+ echo "Contruyendo el dind"
|
|
|
|
+ docker build --build-arg DIR_INSTALL=$(pwd) -t dind .
|
|
|
|
+ else
|
|
|
|
+ echo "NO SE CONSTRUYE EL DIND"
|
|
|
|
+ fi
|
|
|
|
+ ###################################################################
|
|
|
|
+ echo "Instalamos paquetes adicionales?(Y/n)"
|
|
|
|
+ VALUEYESNO=1
|
|
|
|
+ fcGetYesNo
|
|
|
|
+ if [ "$VALUEYESNO" = "1" ];
|
|
|
|
+ then
|
|
|
|
+ echo "Instalando paquetes adicionales en dind"
|
|
|
|
+ docker run -it -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind composer install
|
|
|
|
+ else
|
|
|
|
+ echo "NO SE INSTALAN LOS PAQUETES ADICIONALES"
|
|
|
|
+ fi
|
|
|
|
+ ###################################################################
|
|
|
|
+ echo "Creando los archivos de instalacion. Si queda en blanco se utiliza -> $DOCKERMAKEINSTALL"
|
|
|
|
+ read COMMAND
|
|
|
|
+ if [ "$COMMAND" = "" ];
|
|
|
|
+ then
|
|
|
|
+ eval $DOCKERMAKEINSTALL
|
|
|
|
+ else
|
|
|
|
+ eval $COMMAND
|
|
|
|
+ fi
|
|
|
|
+ ###################################################################
|
|
|
|
+ echo "Ingresando al directorio $DIRINSTALL"
|
|
|
|
+ cd $DIRINSTALL
|
|
|
|
+ ###################################################################
|
|
|
|
+ echo "Obteniendo codigo fuente. Si queda en blanco se utiliza -> $DOCKERGETSOURCE"
|
|
|
|
+ read COMMAND
|
|
|
|
+ if [ "$COMMAND" = "" ];
|
|
|
|
+ then
|
|
|
|
+ eval $DOCKERGETSOURCE
|
|
|
|
+ else
|
|
|
|
+ eval $COMMAND
|
|
|
|
+ fi
|
|
|
|
+ ###################################################################
|
|
|
|
+ echo "Fix nginx. Si queda en blanco se utiliza -> $DOCKERFIXNGINX"
|
|
|
|
+ read COMMAND
|
|
|
|
+ if [ "$COMMAND" = "" ];
|
|
|
|
+ then
|
|
|
|
+ eval $DOCKERFIXNGINX
|
|
|
|
+ else
|
|
|
|
+ eval $COMMAND
|
|
|
|
+ fi
|
|
|
|
+fi
|
|
|
|
+###################################################################
|
|
|
|
+echo "Creando archivo de ejecucion ansible"
|
|
|
|
+echo "El archivo se creara con las siguientes instrucciones"
|
|
|
|
+echo $FILEANSIBLE
|
|
|
|
+echo ""
|
|
|
|
+echo "Desea modificar el archivo? Si se deja en blanco se toma el default. "
|
|
|
|
+read COMMAND
|
|
|
|
+if [ "$COMMAND" = "" ];
|
|
|
|
+then
|
|
|
|
+ echo $FILEANSIBLE > $DIRINSTALL/ansible.run
|
|
|
|
+else
|
|
|
|
+ echo $COMMAND > $DIRINSTALL/ansible.run
|
|
|
|
+fi
|
|
|
|
+docker run -it -v $DIRINSTALL:$DIRINSTALL -v /var/run/docker.sock:/tmp/docker.sock dind ansible
|
|
|
|
+exit 1
|