Browse Source

mover guía de instalación a confluence

Juan Settecase 6 years ago
parent
commit
8ca2ef53a0
1 changed files with 1 additions and 267 deletions
  1. 1 267
      tools/readme.md

+ 1 - 267
tools/readme.md

@@ -1,270 +1,4 @@
-# Requerimientos
- * curl
- * git
- * python
- * pip
- * docker
- * docker-compose
- * php/composer
-
-# Instalación de requerimientos
-### curl
-    apt-get update && apt-get install curl git python
- DIR_INSTALL=$(pwd) -t dind
-### pip
-    # descargo el  archivo get-pip.py desde una url
-    curl https://bootstrap.pypa.io/get-pip.py | python
-
-    # actualizo pip
-    pip install -U pip setuptools
-
-### docker (Versión funcional: apt-get install docker-ce=17.10.0~ce-0~debian    - Versión con errores: 17.11 )
-    # con sudo
-    curl -fsSL get.docker.com | sudo sh
-    sudo usermod -aG docker iksop
-
-    # con root
-    curl -fsSL get.docker.com | sh
-    usermod -aG docker iksop
-
-### docker-compose
-    pip install docker-compose
-
-# Pasos
-#### Crear un directorio para la instalación, puede ser en cualquier lugar del sistema. Tener en cuenta que en este directorio se descargará código fuente.
-    mkdir /opt/flowdat
-
-#### Entrar la directorio.
-    cd /opt/flowdat
-
-#### Descargar el fuente de instalación.
-    # en código se descarga en el directorio actual
-    git clone git@bitbucket.org:ikflowdat/installer.git .
-
-#### Entrar la directorio tools.
-    cd tools
-
-#### Construir el docker que se utilizará durante la instalación.
-    docker build --build-arg DIR_INSTALL=$(pwd) -t dind .
-    # --build-arg: es la forma de pasarle parámetros al docker.
-    # -t: es el nombre que tendrá el contenedor.
-    # .: indica que el fuente se descargará en el directorio actual.
-    # para más información de los parámetros ejecutar "docker build --help
-
-#### Instalamos con composer elementos adicionales.
-    docker run -it -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind composer install
-    # --build-arg: es la forma de pasarle parámetros al docker.
-    # -t: es el nombre que tendrá el contenedor.
-    # para más información de los parámetros ejecutar "docker build --help"
-
-#### Crear los archivos necesarios para la instalación. Dentro del directorio actual se crea un nuevo directorio con el nombre de la empresa.
-
-**ATENCIÓN**: El siguiente comando requiere que se establezcan los parámetros **client** y **domain**, los cuales determinan la URL a la que deberá accederse para ingresar al sistema. **Si se omiten estos valores la instalación no funcionará**. Por ejemplo, si el cliente es "galvez" y el dominio es "flowdat.net" entonces:
-####. Poner el nombre del cliente, de lo contrario no va a funcionar correctamente!!!
-####. Cambiar --client=$CLIENT por alguno de los ejemplos
-
-    docker run -it -v /opt/flowdat:/opt/flowdat -v /var/run/docker.sock:/tmp/docker.sock dind make:install /opt/flowdat --client=galvez --domain=flowdat.net
-    # docker run: ejecuta un comando sobre el contenedor.
-    # -it: significa que voy a tener un tty interativo.
-    # -v $(pwd):$(pwd): monta como un volumen el directorio actual, en el contenedor bajo el mismo directorio.
-    # -v /var/run/docker.sock:/tmp/docker.sock: comparte el docker.sock entre los docker's.
-    # dind: es el nombre que le pusimos anteriormente al contenedor.
-    # make:install: es el comando que se ejecuta dentro del docker para crear los archivos.
-
-    # --client=NOMBRE-CLIENTE: Nombre de la empresa que estoy instalando.
-    # --domain=DOMINIO-INSTALACION: es el nombre del dominio que se utilizará. El dominio final quedaría
-    # base.NOMBRE-CLIENTE.DOMINIO-INSTALACION, ftth.DOMINIO-INSTALACION.flowdat.com, etc.
-    # --add-nginx-links: permite crear links nginx en los servicios de los módulos web de FD3, sirve para instalaciones en modo desarrollo. Si no se agrega, por defecto no los crea.
-    # para mas informacion ejecutar "docker run -it -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind make:install --help"
-
-Esto hará que el sistema base quede instalado en base.galvez.flowdat.net.
-
-#### Una vez dentro del docker entramos al directorio de instalación.
-    cd /opt/flowdat
-
-#### Obtener los fuentes desde bitbucket
-    docker run -it -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind get:source $(pwd)/git.ini --timeout=120
-    # docker run: ejecuta un comando sobre el contenedor.
-    # -it: significa que voy a tener un tty interativo.
-    # -v $(pwd):$(pwd): monta como un volumen el directorio actual, en el contenedor bajo el mismo directorio.
-    # -v /var/run/docker.sock:/tmp/docker.sock: comparte el docker.sock entre los docker's.
-    # dind: es el nombre que le pusimos anteriormente al contenedor.
-    # get:source: es el comando que se ejecuta dentro del docker para obtener los fuentes.
-    # $(pwd)/git.ini: es el nombre del archivo que posee los directorios a descargar.
-    # para mas informacion ejecutar "docker run -it -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind get:source --help"
-
-#### Renombramos los archivos innecesarios para el nginx.
-    docker run -it -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind fix:nginx $(pwd)
-    # docker run: ejecuta un comando sobre el contenedor.
-    # -it: significa que voy a tener un tty interativo.
-    # -v $(pwd):$(pwd): monta como un volumen el directorio actual, en el contenedor bajo el mismo directorio.
-    # -v /var/run/docker.sock:/tmp/docker.sock: comparte el docker.sock entre los docker's.
-    # dind: es el nombre que le pusimos anteriormente al contenedor.
-    # fix:nginx: es el comando que se ejecuta dentro del docker para obtener los fuentes.
-    # $(pwd): nombre de la empresa que estoy instalando.
-
-#### Entramos al docker para correr ansible y terminar la configuración
-    docker run -it -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind bash
-    # docker run: ejecuta un comando sobre el contenedor.
-    # -it: significa que voy a tener un tty interativo.
-    # -v $(pwd):$(pwd): monta como un volumen el directorio actual, en el contenedor bajo el mismo directorio.
-    # -v /var/run/docker.sock:/tmp/docker.sock: comparte el docker.sock entre los docker's.
-    # dind: es el nombre que le pusimos anteriormente al contenedor.
-    # bash: significa que se ejecutará un bash.
-
-#### Una vez dentro del docker entramos al directorio de instalación.
-    cd /opt/flowdat
-
-#### Corremos ansible para finalizar la configuración e instalación
-    eval $(cat mysql.host.env running.env) ansible-playbook -i inventory.ini -u root playbook.yml
-    # eval $(cat mysql.host.env running.env): se le pasa al ansible-playbook las variables de entorno definidas en los archivos mysql.host.env y running.env
-    # -i inventory.ini: se el especifica el inventory.ini
-    # -u root: le digo que se ejecutarán las acciones como el usuario "root"
-    # playbook.yml: es el nombre del playbook a ejecutar
-
-### Los containers se levantan por systemctl
-### Ejecutar fuera del dind
-    ln -sf $(pwd)/docker-compose.service /etc/systemd/system/docker-compose.service
-
-    systemctl enable docker-compose.service
-
-
-## Uninstalls
-#### Docker
-    # con sudo
-    sudo apt-get remove docker docker-engine docker.io docker-ce
-
-    # con root
-    apt-get remove docker docker-engine docker.io docker-ce
-
-
-#### Kernel update
-    # agrego los repositorios
-    echo "deb http://ftp.us.debian.org/debian/ jessie-backports main" >> /etc/apt/sources.list
-    echo "deb-src http://ftp.us.debian.org/debian/ jessie-backports main" >> /etc/apt/sources.list
-    # actualizo la version del kernel
-    apt-get update ; apt-get install -t jessie-backports linux-image-amd64
-
-#### Obtener un certificado wildcard para HTTP + SSL
-    https://ikflowdat.atlassian.net/wiki/spaces/DL/pages/9469968
-
-## Alta de Dominios en Google Cloud DNS
-
-** Importante **: Correr estos comandos fuera del entorno de Docker.
-
-** Nota **: Al momento de escribir este documento, Google Cloud DNS unicamente soporta al dominio flowdat.net.
-
-Para crear los registros DNS correspondientes para el subdominio del cliente, correr los siguientes comandos:
-
-Instalar los módulos python necesarios:
-```
-pip install google google-cloud-dns
-```
-
-Cambiarse al directorio de herramientas de LetsEncrypt:
-```
-cd /opt/flowdat/letsencrypt
-```
-
-Correr el script:
-```
-python googledns.py --key=key.json --action=create --client=<NOMBRE-CLIENTE> --ip_address=<IP-CLIENTE> --domain=flowdat.net
-```
-Reemplazar NOMBRE-CLIENTE con el nombre utilizado durante la instalación (ej. "galvez") y IP-CLIENTE con la dirección IP del servidor en el cual se instaló Flowdat. Para detalles de otras funciones del script correr el mismo sin parámetros.
-
-## Obtención de certificado SSL de LetsEncrypt
-** Importante **: Correr estos comandos fuera del entorno de Docker.
-
-
-Antes de continuar, instalar Certbot (https://certbot.eff.org/)
-
-Asegurarse de tener instalado el módulo Python de google-dns para Certbot:
-```
-pip install certbot-dns-google
-```
-
-Cambiar al directorio de herramientas de letsencrypt:
-```
-cd /opt/flowdat/letsencrypt
-```
-
-Alterar el script de renovación para que funcione con nuestro dominio:
-```
-sed -i 's/DOMAIN_NAME_REPLACE/NOMBRE_DOMINIO/g' flowdat_deploy.sh
-```
-**IMPORTANTE**: Reemplazar NOMBRE_DOMINIO con el dominio del cliente, ej: galvez.flowdat.net.
-
-Correr certbot para obtener el certificado por primera vez:
-```
-certbot certonly --cert-name NOMBRE_DOMINIO --dns-google --dns-google-credentials /opt/flowdat/letsencrypt/key.json --server https://acme-v02.api.letsencrypt.org/directory -d "*.NOMBRE_DOMINIO" -d "NOMBRE_DOMINIO" --deploy-hook=/opt/flowdat/letsencrypt/flowdat_deploy.sh
-```
-**IMPORTANTE**: Reemplazar NOMBRE_DOMINIO con el dominio del cliente, ej: galvez.flowdat.net.
-
-Verificar que la siguiente línea aparezca entre las últimas a la salida del comando:
-```
-Running deploy-hook command: /opt/flowdat/letsencrypt/flowdat_deploy.sh
-```
-
-...la cual indica que el hook se ejecutó. Eso significa que los certificados deberían haberse copiado a la carpeta de Nginx. Verificar con el navegador que el sitio web sea seguro.
-
-Probar autorenovación:
-```
-certbot renew --dry-run
-```
-
-
-
-## Errors
-#### Mysql no arranca
-    Este es un problema de permisos del directorio mysql. Realizar un chmod fuera del docker.
-
-#### Unknown database 'mysql'
-    Por alguna razón no se creo la base de datos de mysql.
-    Ingreso al docker de mysql
-        docker-compose exec mysql bash
-    Paro el servicio de mysql
-        service mysql stop
-    Ingreso al directorio mysql
-        cd /opt/flowdat/mysql
-    Borro todos los archivos del directorio mysql
-        rm -Rf *
-    Inicializo nuevamente la base de datos de forma insegura. Sin password para root
-        mysqld --initialize-insecure
-    Verifico que pueda acceder al mysql. Cuando pide el password lo dejamos en blando
-        mysql -u root -p
-    Sino podemos entrar, entonces hay que reiniciar el password
-        apt update && apt install vi
-        su mysql
-
-        235r2342gtfsw
-    Cambiar el password de root, seguimos com el ejemplo
-
-    Salgo del docker
-        exit
-    Ejecuto nuevamente el playbook (ansible)
-
-#### Pantalla en blanco al ingresar a base luego de una instalación nueva
-Por algún motivo Base no es capaz de alterar los permisos de la caché durante la instalación.
-Cambiar los permisos mediante:
-
-```
-    cd /opt/flowdat/base
-    chmod -R 777 var/cache/ var/logs/ var/sessions/
-```
-
-#### No aparece el logo de Flowdat en el login y en otras pantallas
-
-Por alguna razón los assets manejados por assetic no se copian durante la instalación.
-Ingresar al container Base:
-```
-    cd /opt/flowdat/
-    docker-compose exec base bash
-```
-Luego correr:
-```
-    bin/console assetic:dump
-```
-
+Ésta guía se movió a https://ikflowdat.atlassian.net/wiki/spaces/FD3/pages/582811659/Instalar+Actualizar+Flowdat+3
 
 # PROCEDIMIENTOS PARA GENERAR BRANCH'S Y TAG'S
 ## Branch y tag de módulos