Fernando Alonso 6 anos atrás
pai
commit
791f5a2ff3
3 arquivos alterados com 88 adições e 95 exclusões
  1. 79 93
      .drone.yml
  2. 7 0
      tools/installer.sh
  3. 2 2
      tools/readme.md

+ 79 - 93
.drone.yml

@@ -1,96 +1,82 @@
-services:
-  selenium:
-    image: selenium/standalone-firefox-debug:3.1
-  docker:
-    image: docker:17.10-dind
-    privileged: true
-    command: [ "--storage-driver=vfs", "--tls=false" ]
+#services:
+#  selenium:
+#    image: selenium/standalone-firefox-debug:3.1
+#  docker:
+#    image: docker:17.10-dind
+#    privileged: true
+#    command: [ "--storage-driver=vfs", "--tls=false" ]
 
 pipeline:
-  docker_installer:
-   environment:
-      - DIR_INSTALL=/opt/installer
-   repo : docker.infra.flowdat.com/fd3/installer
-   image: plugins/docker
-   email: luciano@interlink.com.ar
-   registry: docker.infra.flowdat.com
-   dockerfile: tools/Dockerfile
-   build_args:
-      - DIR_INSTALL=/opt/installer
-   context: tools/
-   tag:
-     - latest
-   when:
-    event: [push]
-
-  installer_branch:
-    image: docker.infra.flowdat.com/fd3/sf-php:latest
+  build:
+    image: python:2.7
     commands:
-      - chmod 0600 keys/*
-      - eval $(ssh-agent); ssh-add keys/gogs.drone.id_rsa
-      - cd tools
-      - composer install --no-interaction --no-progress
-      - php cmd.php make:tag:vendors repositories.ini ${DRONE_BRANCH} --branch=true
-    when:
-       event: [ push ]
-       branch: v*
-
-  installer_tag:
-    image: docker.infra.flowdat.com/fd3/sf-php:latest
-    commands:
-      - chmod 0600 keys/*
-      - eval $(ssh-agent); ssh-add keys/gogs.drone.id_rsa
-      - cd tools
-      - composer install --no-interaction --no-progress
-      - php cmd.php make:tag:vendors repositories.ini ${DRONE_TAG}
-    when:
-       event: [ tag ]
-
-  #build:
-  #  image: debian:9.0
-  #  commands:
-  #    - echo "Acquire::http::Proxy \"http://200.50.168.30:3142\";" | tee /etc/apt/apt.conf.d/00aptproxy
-  #    - apt-get update && apt-get install -yq git curl imagemagick php-cli php-curl php-mbstring php-imagick php-xml
-  #    - which compare
-  #    - env
-  #    - pwd
-  #    - ls -lash
-  #    - cd behat/testScreenshotGalvez ; php ./vendor/bin/codecept run --steps tests/acceptance/
-
-  #install:
-  #  image: docker.infra.flowdat.com/fd3/sf-php:latest
-  #  environment:
-  #    - DOCKER_HOST=tcp://0.0.0.0:2375
-  #  commands:
-  #    - apt-get update && apt-get  install -yq php-gmp
-  #    - apt-get update && apt-get install -yq lsb-release time
-  #    - . /etc/os-release; echo $ID
-  #    - lsb_release -cs
-  #    - env
-  #    - php -v
-  #    - apt-get update && apt-get install -yq apt-transport-https ca-certificates curl gnupg2 software-properties-common
-  #    - curl -fsSL https://download.docker.com/linux/$ID/gpg | apt-key add -
-  #    - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$ID $(lsb_release -cs) stable"
-  #    - apt-get update && apt-cache madison docker-ce
-  #    - apt-get update && apt-get -yq install docker-ce=17.06.0~ce-0~debian
-  #    - apt-get update && apt-get  install -yq python-pip
-  #    - docker --tls=false ps -a
-  #    - pip install docker-compose
-  #    - docker-compose -v
-  #    - echo "Hasta aqui es instalación de paquetes requeridos docker y docker-compose"
-  #    - cd tools 
-  #    - chmod 0600 keys/bitbucket.id_rsa*
-  #    - eval $(ssh-agent) ; ssh-add keys/bitbucket.id_rsa
-  #    - composer install --no-interaction --no-progress -vvv
-  #    - rm -rf demo
-  #    - php cmd.php make:install demo
-  #    - ping bitbucket.org -c4
-  #    - cd demo 
-  #    - php ../cmd.php get:source git.ini
-  #    - cat docker-compose.yml
-  #    - docker-compose config
-  #    - time docker-compose build
-  #    - docker-compose up -d
-  #    - docker-compose ps 
-  #    - "curl -H 'Host: base.fd3.flowdat.com' 127.0.0.1"
- 
+      - START=$(date +%s)
+      - echo $START
+      - export CLIENT=fd3
+      - apt update 
+      - apt install netcat -yq
+      #- pip install --upgrade pip ansible==2.2.0 markupsafe ecdsa pyOpenSSL;
+      - curl -OL https://github.com/digitalocean/doctl/releases/download/v1.8.0/doctl-1.8.0-linux-amd64.tar.gz
+      - tar xf doctl-1.8.0-linux-amd64.tar.gz
+      - ./doctl auth init -t 083d19437d43fc51983c8926e5060bdb5039032e7d2a933395b2513573c799d3
+      - ID=$(./doctl compute droplet create test-installer-fd3 --wait --format "ID" --size s-6vcpu-16gb --image debian-9-x64 --region nyc3 --ssh-keys b4:2b:5f:4c:0c:be:6e:77:50:85:96:ca:70:55:db:aa --tag-names test,fd3-test,installer | tail -1)
+      - echo $ID
+      - ./doctl compute droplet get $ID --format "PublicIPv4" --no-header > dd.id
+      - FD3IP=$(cat dd.id)
+      - timeout 30 sh -c 'until nc -z $0 $1; do sleep 1; done' $FD3IP 22
+#ssh con IP doctl
+      - chmod 0600 bitbucket.id_rsa
+      - eval $(ssh-agent) ; ssh-add bitbucket.id_rsa
+      - ssh -i bitbucket.id_rsa -o StrictHostKeyChecking=no root@$FD3IP apt-get update
+      
+      - ssh -i bitbucket.id_rsa -o StrictHostKeyChecking=no root@$FD3IP apt-get install curl git python python-pip -yq
+      - ssh root@$FD3IP 'ssh-keyscan -H -p 22  bitbucket.org >> ~/.ssh/known_hosts'
+      #- ssh -i bitbucket.id_rsa -o StrictHostKeyChecking=no root@$FD3IP curl https://bootstrap.pypa.io/get-pip.py | python
+      - curl -fsSL get.docker.com | ssh -i bitbucket.id_rsa -o StrictHostKeyChecking=no root@$FD3IP 
+      - ssh -i bitbucket.id_rsa -o StrictHostKeyChecking=no root@$FD3IP 'pip install docker-compose'
+
+#      - ssh -i bitbucket.id_rsa -o StrictHostKeyChecking=no root@$FD3IP 'curl -sSL https://agent.digitalocean.com/install.sh | sh'
+
+####. 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.
+      - ssh -i bitbucket.id_rsa -o StrictHostKeyChecking=no root@$FD3IP mkdir /opt/flowdat
+
+####. Descargar el fuente de instalación.   
+      - ssh -A -o StrictHostKeyChecking=no root@$FD3IP git clone git@bitbucket.org:ikflowdat/installer.git /opt/installer
+
+####. Construir el docker que se utilizará durante la instalación.
+      - ssh -o StrictHostKeyChecking=no root@$FD3IP 'cd /opt/installer/tools; docker build --build-arg DIR_INSTALL=$(pwd) -t dind .'
+
+####. Instalamos con composer elementos adicionales.
+#      - ssh -o StrictHostKeyChecking=no root@$FD3IP docker run -v $(pwd):$(pwd) -v /var/run/docker.sock:/tmp/docker.sock dind composer install
+
+####. Crear los archivos necesarios para la instalción. Dentro del directorio actual se crea un nuevo directorio con el nombre de la empresa.
+      - ssh -o StrictHostKeyChecking=no root@$FD3IP 'docker run -v /opt/flowdat:/opt/flowdat -v /var/run/docker.sock:/tmp/docker.sock dind make:install /opt/flowdat --client=fd3'
+
+####. Una vez dentro del docker entramos al directorio de instalación. Obtener los fuentes desde bitbucket
+      - ssh -o StrictHostKeyChecking=no root@$FD3IP 'cd /opt/flowdat; docker run -v /opt/flowdat:/opt/flowdat -v /var/run/docker.sock:/tmp/docker.sock dind get:source $(pwd)/git.ini --timeout=120'
+
+####. Renombramos los archivos innecesarios para el nginx.    
+      - ssh -o StrictHostKeyChecking=no root@$FD3IP docker run -v /opt/flowdat:/opt/flowdat -v /var/run/docker.sock:/tmp/docker.sock dind fix:nginx /opt/flowdat
+
+####. Entramos al docker para correr ansible y terminar la configuración. Una vez dentro del docker entramos al directorio de instalación. Corremos ansible para finalizar la configuración e instalación
+      - scp -o StrictHostKeyChecking=no tools/installer.sh root@$FD3IP:/opt/flowdat
+      - ssh -o StrictHostKeyChecking=no root@$FD3IP docker run -v /opt/flowdat:/opt/flowdat -v /var/run/docker.sock:/tmp/docker.sock -w /opt/flowdat --entrypoint=./installer.sh dind
+
+### Compose UP
+      - ssh -o StrictHostKeyChecking=no root@$FD3IP 'cd /opt/flowdat ; docker-compose up -d'
+
+### Los container se levantan por systemctl. Ejecutar fuera del dind
+      - ssh -o StrictHostKeyChecking=no root@$FD3IP ln -sf /opt/flowdat/docker-compose.service /etc/systemd/system/docker-compose.service
+      - ssh -o StrictHostKeyChecking=no root@$FD3IP systemctl enable docker-compose.service
+
+## Unistalls Docker
+#      - ssh -o StrictHostKeyChecking=no root@$FD3IP apt-get remove docker docker-engine docker.io docker-ce
+
+
+
+
+      - END=$(date +%s);
+      - echo $((END-START)) | awk '{print int($1/60)":"int($1%60)}'
+#      - ./doctl compute droplet delete -f $ID
+      - exit 0
+

+ 7 - 0
tools/installer.sh

@@ -0,0 +1,7 @@
+#!/bin/bash
+
+export $(cat mysql.host.env)
+export $(cat running.env)
+env
+ansible-playbook -i inventory.ini -u root playbook.yml
+

+ 2 - 2
tools/readme.md

@@ -10,7 +10,7 @@
 #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
@@ -28,7 +28,7 @@
     usermod -aG docker iksop
 
 ### docker-compose
-    sudo pip install 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.