From 8a669fb53760b4bb348dc2b240b2a38db83ecdb0 Mon Sep 17 00:00:00 2001 From: Yutsuo Date: Thu, 29 Nov 2018 12:21:28 -0200 Subject: [PATCH] learning CI/CD for real --- .gitlab-ci.yml | 21 +++++++++++++++++++++ ambiente_git_labbs.txt | 40 ---------------------------------------- docker-compose.yml | 19 ++++++++++++++----- prometheus.yml | 6 +++--- 4 files changed, 38 insertions(+), 48 deletions(-) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..e7b50aa --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,21 @@ +stages: + - build + - deploy + +build_job: + stage: build + script: + - /sandman/build.sh + except: + - deploy + tags: + - sandman-build + +deploy_job: + stage: deploy + script: + - /sandman/deploy.sh + only: + - deploy + tags: + - sandman-deploy diff --git a/ambiente_git_labbs.txt b/ambiente_git_labbs.txt index 303c20d..cdf6049 100644 --- a/ambiente_git_labbs.txt +++ b/ambiente_git_labbs.txt @@ -15,25 +15,17 @@ Onde nomedogrupo no caso de projetos pessoais, será o nome do usuário. E nomed Recomendamos por motivos de segurança, caso seu projeto utilize algum banco de dados, que seja criada uma rede específica para comunicação do banco de dados com a aplicação que fará uso dela. Dessa forma, utilize a seguinte configuração para criação e utilização dessa rede: networks: - app-bd-net: - driver: overlay - traefik-net: - external: - name: traefik-net No swarm já temos criada a rede default chamada traefik-net. Se quer somente colocar um projeto simples via docker-compose basta adicionar as linhas a seguir ao final do seu docker-compose.yml: networks: - default: - external: - name: traefik-net Senão, se for utilizar um wordpress por exemplo que utiliza um banco de dados, para utilizar a segurança mencionada mais acima, utilize a rede criada (app-bd-net) para o service do banco de dados e do wordpress e a rede Traefik-net somente para o wordpress. Dessa forma somente o wordpress terá contato com a rede externa traefik-net e o banco de dados somente estará acessível pela rede app-bd-net a qual está só ele e o wordpress. @@ -43,15 +35,10 @@ Senão, se for utilizar um wordpress por exemplo que utiliza um banco de dados, Algumas informações aqui são necessárias para que o traefik(gerenciador de borda) reconheça e aponte corretamente as requisições para seu container. São elas: deploy: - labels: - - traefik.docker.network=traefik-net - - traefik.frontend.entryPoints=internal_http,internal_https,external_http,external_https - - traefik.frontend.rule=Host:seudominio.labbs.com.br - - traefik.port=8080(Se tomcat)80(se nginx) .gitlab-ci.yml @@ -71,57 +58,30 @@ Esses parâmetros serão ignorados no modo swarm com docker-compose versão 3 po Esse arquivo não é obrigatório no caso de o projeto ser somente de deploy, porém, oferece algumas possibilidades de configurações adicionais ao projeto: port, subdomain, edges, deploy_mode, desired instances, dentre outros. -#internal port of container, for traefik connection - -#default: 80 - port: 80 - -#override subdomain in host of container, i.e.: foo.labbs.com.br - -#default: Inverted git repository path - subdomain: foo - -#override host of container - -#default: $SUBDOMAIN.labbs.com.br - host: test.labbs.com.br - -#enable redirect ssl - -#default: true - ssl: true - -#create redirections on edges - -#default: - redirects: teste.labbs.com.br,teste2.labbs.com.br - -#define edges of container - -#default: internal - edges: internal,external(Acesso via internet) - -#define desired instances number of container - -#default: 1 - desired_instances: 1 - -#define mode of deploy of service. (service or stack) - -#default: service - deploy_mode: stack - -#define name of stack - -#warning: [usage mode in deprecation] old usage of variable enabled stack deploy mode - -#default: - stack: stacktest diff --git a/docker-compose.yml b/docker-compose.yml index 5fc1fe9..0c7c777 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,7 @@ services: - 8000:8000 networks: - network_1 + - traefik-net app: container_name: app depends_on: @@ -19,6 +20,7 @@ services: networks: - network_1 - network_2 + - labbs_overlay mongo: container_name: mongo build: ./mongo @@ -28,6 +30,7 @@ services: MONGO_INITDB_ROOT_PASSWORD: ruth networks: - network_2 + - labbs_overlay ports: - 27017:27017 prometheus: @@ -37,6 +40,7 @@ services: - ./prometheus.yml:/etc/prometheus/prometheus.yml networks: - network_2 + - labbs_overlay ports: - 9090:9090 grafana: @@ -51,8 +55,13 @@ networks: driver: bridge network_2: driver: bridge - default: - ipam: - driver: default - config: - - subnet: 192.168.5.0/24 + labbs_overlay: + driver: overlay + traefik-net: + external: + name: traefik-net + # default: + # ipam: + # driver: default + # config: + # - subnet: 192.168.5.0/24 \ No newline at end of file diff --git a/prometheus.yml b/prometheus.yml index 7aa2d9f..71bd209 100755 --- a/prometheus.yml +++ b/prometheus.yml @@ -6,10 +6,10 @@ scrape_configs: static_configs: - targets: ['app:3001'] # mysqld_exporter address and port labels: - alias: 'app1-02' # alias name given to this instance - - job_name: 'app1' # Job name + alias: 'app1-01' # alias name given to this instance + - job_name: 'app1-02' # Job name metrics_path: /metrics2 static_configs: - targets: ['app:3001'] # mysqld_exporter address and port labels: - alias: 'app1' # alias name given to this instance \ No newline at end of file + alias: 'app1-02' # alias name given to this instance \ No newline at end of file