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