浏览代码

Scripts para instalar flowdat desde 0. Son los pasos del readme

gabriel 6 年之前
父节点
当前提交
883f107d73
共有 1 个文件被更改,包括 170 次插入0 次删除
  1. 170 0
      tools/installModules.sh

+ 170 - 0
tools/installModules.sh

@@ -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