Mostrando postagens com marcador Gitlab-CI. Mostrar todas as postagens
Mostrando postagens com marcador Gitlab-CI. Mostrar todas as postagens

quinta-feira, 13 de maio de 2021

Criando chave SSH dentro do Gitlab Runner para automação do Deploy - CI/CD

      Nesse post eu mostro como criar uma chave SSH no Gitlab Runner para usá-la no Servidor de Deploy como host conhecido, permitindo o deploy sem a necessidade de login e senha, permitindo a automação do processo.


      Aqui assumimos que já se tem o Gitlab Runner configurado e rodando  na máquina desejada.


     Entramos no terminal do container:


$ docker exec - it gitlab-runner bash


     Mudamos para o usuário gitlab-runner


$ su gitlab-runner


     Executamos o comando que cria a chave e seguimos os passos seguintes apenas dando enter para que fique com as configurações padrão.


$ ssh-keygen

     

     Agora que a chave foi criada. Vamos copiá-la para configurá-la na máquina de deploy.


$ cd  /home/gitlab-runner/.ssh

cat id_rsa.pub


      Copiamos o conteúdo e vamos para o servidor de deploy. Nele vamos procurar o arquivo authorized_keys onde devemos colocar o conteúdo copiado. Esse arquivo fica no diretório raiz do usuário na pasta .ssh/, pode ser que já tenham outras chaves nele ou que seja ncessário criar do zero esse arquivo. 


     Ao colar lá a chave ssh pública, volte no container do Gitlab Runner e faça o primeiro acesso para testar. Lembre-se de estar com o usuário gitlab-runner.


$ docker exec - it gitlab-runner bash

$ su gitlab-runner

$ ssh usuario@ip_da_maquina_deploy


     Como é a primeira vez, aceite a conexão ssh. Pronto, agora o processo de deploy é pra funcionar normalmente.

terça-feira, 11 de maio de 2021

Erro ao Criar Runner Gitlab no Docker Toolbox - Error response from daemon: invalid mode: \MinGW\msys\1.0\etc\gitlab-runner.

      Nesse post eu mostro como resolver um problema de criar um Runner do Gitlab para quem usa o Docker Toolbox. Sabe o que é o Docker Toolbox? Um projeto (que até foi descontinuado, porém eu uso devido a problemas que tive com o Docker rodando direto na minha máquia e outras coisas que uso) que instala as ferramentas Docker (Docker Engine, Docker Machine, etc)  dentro de uma "caixa" que abstrai as características da sua máquina e roda o Docker independentemente delas. Como tudo no mundo, isso tem vantagens e desvantagens. Como o Docker Toolbox roda dentro dessa "caixa" algumas coisas funcionam um pouco diferentes. Os volumes são uma delas.

     Após baixar a imagem do Runner com o comando:


$ docker pull gitlab/gitlab-runner:latest


     Quando vamos executar o comando que sobe  o Runner criando os volumes:


$   docker run -d --name gitlab-runner --restart always -v /Users/Shared/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest


     Recebemos o seguinte erro:


c:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: invalid mode: \MinGW\msys\1.0\etc\gitlab-runner. 

See 'c:\Program Files\Docker Toolbox\docker.exe run --help'.


     E procurando a solução, encontrei e foi bem simples, basta adicionar uma barra "/" a mais no início dos caminhos do volume, ficando assim:


$ docker run -d --name gitlab-runner --restart always -v //Users/Shared/gitlab-runner/config://etc/gitlab-runner -v //var/run/docker.sock://var/run/docker.sock gitlab/gitlab-runner:latest 


     Pronto. Agora funciona tranquilo.


https://stackoverflow.com/questions/50540721/docker-toolbox-error-response-from-daemon-invalid-mode-root-docker