123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- #!/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
|