Introdução.
A montagem automática de projetos após a atualização do código é, na verdade, um procedimento padrão que permite visualizar e testar o produto desenvolvido em qualquer lugar, examinar imediatamente os erros e, como resultado, encontrar e corrigir rapidamente o problema. Com o advento do Docker, eles não se tornaram menos relevantes e procurados. Atualmente, existem dezenas de sistemas de CI: Jenkins, Atlassian Bamboo, Bitbucket Pipelines e assim por diante. O problema é que eles são bastante complexos, a maioria deles é comercial e custa uma certa quantia e, o mais importante, exige um especialista e tempo para configurar e ajustar constantemente, o que geralmente não é possível em projetos pequenos e, mais ainda, no desenvolvimento individual.
O Concourse CI é um sistema de integração contínua necessário para automatizar pipelines de teste usando uma sintaxe declarativa unificada. O Concourse CI simplifica o processo de implementação da integração contínua e quase não requer tempo para implantação e estudo.
Em nosso guia anterior, vimos a instalação e a configuração do Concourse CI em um servidor Debian 10. Descobrimos como executá-lo a partir da CLI e usar a interface da Web.
Nesta instrução, veremos como proteger a interface gráfica configurando o servidor proxy reverso por meio do Nginx.
O uso do proxy reverso tem algumas vantagens, como: restringir o acesso a determinado conteúdo, permitir permanecer anônimo, evitar restrições de visualização de conteúdo, reduzir a carga nos servidores principais devido ao armazenamento em cache de conteúdo estático e dinâmico, compactar o conteúdo para reduzir o tempo de download e usar um firewall de software, que pode proteger contra os ataques mais comuns da Web.
Antes de começarmos
Em primeiro lugar, devemos implantar um servidor virtual com o sistema operacional Debian 10. Deve haver pelo menos 1 GB de RAM. Siga os tutoriais de acordo com as instruções para configurar uma conta simples sem direitos de superusuário.
Instale e configure o Concourse CI usando o site oficial ou o GitHub.
Instalação do Nginx e configuração de uma conexão criptografada.
Você deve obter um nome de domínio para acessar por domínio, não por endereço IP.
Especificação de proxy reverso
Vamos começar editando o arquivo de bloco do servidor para configurar o SSL e redirecionar o tráfego para o servidor Concourse CI.
O diretório /etc/nginx/sites-enabled contém o arquivo, que é o arquivo padrão depois que o nginx é instalado.
Vamos fazer edições no arquivo para configurar um servidor proxy. Ele encaminhará o tráfego para o site por nome de domínio.
Vamos começar. Adicione linhas na parte superior do arquivo padrão do diretório /etc/nginx/sites-enabled antes da parte principal do bloco do servidor. Especifique o endereço IP do servidor local e a porta em que nosso servidor Concourse está escutando:
server 127.0.0.1:8080;
}
Você precisa encontrar o bloco responsável pela manutenção do SSL. Por padrão, a linha com listen 443 é usada. Certifique-se de que, após server_name, haja seu nome de domínio.
Configure o bloco "location /" nesse bloco. Ele envia solicitações para o servidor Concourse:
include proxy_params;
proxy_http_version 1.1;
proxy_read_timeout 90;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://concourse;
}
Depois de fazer as edições, não se esqueça de salvar o arquivo e sair dele.
Usando o comando, vamos verificar a exatidão do arquivo:
Como resultado, obtemos a sintaxe ok. O teste foi bem-sucedido.
Você precisa reiniciar o nginx para aplicar as alterações
Você configurou o servidor Concourse para o domínio.
Vinculação de um domínio a uma interface de rede
Depois de todas as definições de configuração, precisamos vincular nosso endereço local ao nosso domínio. Abra o arquivo de ambiente da Web no diretório /etc/concourse e converta a string CONCOURSE_EXTERNAL_URL para o seguinte e adicione o endereço IP local:
CONCOURSE_BIND_IP=127.0.0.1
Vamos sair e salvar as alterações.
Precisamos reiniciar o serviço concourse-web para aplicar as edições.
Vamos verificar qual endereço funciona com a porta 8080 usando o comando:
Como saída, temos a seguinte linha
A interface só escuta o endereço IP local.
Agora faremos edições no firewall, excluindo a regra para a porta 8080:
Todas as solicitações serão processadas pelo Nginx, que é executado na porta 80.
Verificação da interface
A interface oferece a capacidade de navegar por todos os pipelines e tarefas e monitorar os resultados.
Vamos abrir um navegador e inserir nosso nome de domínio. Chegaremos à página de boas-vindas do Concourse:
Em seguida, digite o login e a senha que você especificou durante a configuração do Concourse:
Após a autorização bem-sucedida, podemos abrir a interface:
Agora você tem acesso ao gui do Concourse por meio do domínio.
Conclusões
Demos uma olhada em:
- Alteração do arquivo Nginx para rotear o tráfego por padrão;
- Vincular um endereço IP local a um domínio;
- Teste de GUI por meio de um domínio.