Voltar ao blog

Como Configurar Implantação Automática com Git com um VPS

Como Configurar Implantação Automática com Git com um VPS

Git é o sistema de controle de versão mais popular na área de desenvolvimento de software. É de código aberto e mantido ativamente desde 2005 por Linus Torvalds, o famoso criador do Linux. Hoje, um número impressionante de projetos de software (incluindo os comerciais) usa o Git para gerenciamento de versão.

O Git segue uma arquitetura distribuída, tornando-o um exemplo perfeito de um DVCS (Sistema de Controle de Versão Distribuído). Usando o Git, podemos gerenciar tanto um repositório local quanto um remoto simultaneamente. Neste guia, demonstraremos como configurar uma implantação automática de um projeto Git com um VPS.

Pré-requisitos

Neste guia, haverá um repositório local e um repositório remoto no VPS. O repositório local enviará as alterações para o repositório remoto. A partir do repositório remoto, podemos enviar as alterações para a branch beta ou  live . Para conseguir isso, há alguns pré-requisitos dos quais você precisa cuidar primeiro.

Para estabelecer uma conexão segura com o VPS, usaremos SSH. Felizmente, o Git também suporta SSH como um protocolo para se conectar a repositórios remotos. Este guia explora a configuração do SSH para se conectar a servidores remotos no Ubuntu.

Configurando o VPS

No nosso servidor remoto, teremos a seguinte configuração:

  • Diretório live: /var/www/dummy-domain.com
  • Repositório do servidor: /var/repo/site.git

A partir da máquina local, o Git enviará as atualizações para o repositório do VPS. A partir do repositório do VPS, configuraremos um script que o Git usará para enviá-las automaticamente para o diretório live. Também é possível configurar um repositório para versões beta .

  • Criando os Repositórios

Conecte-se ao VPS e crie os locais dos repositórios:

Deployment with Git screenshot 1

Em seguida, inicialize o repositório Git:

Deployment with Git screenshot 2

Aqui, a flag --bare descreve que não haverá arquivos de origem, apenas os componentes de controle de versão.

  • Hooks

Em seguida, configuraremos os hooks para o repositório. Todo repositório Git contém uma pasta chamada hooks. Ela contém arquivos de exemplo que servem como modelo para hooks e várias ações personalizadas.

De acordo com a documentação oficial do Git, existem três tipos de hooks:

  • pre-receive: É executado assim que o servidor recebe uma solicitação de push.
  • post-receive: É executado quando uma solicitação de push é concluída.
  • update: Semelhante ao pre-receive. No entanto, ele é executado uma vez por branch.

A partir do local do repositório, execute o comando ls :

Deployment with Git code screenshot 3

Altere o diretório atual para hooks:

Deployment with Git code screenshot 4

Agora, crie o script post-receive :

Dentro do script, insira o seguinte código. Certifique-se de alterar os locais dos diretórios de acordo:

Deployment with Git code screenshot 6

Salve o arquivo e feche o editor. Defina o arquivo como um executável:

Deployment with Git code screenshot 7

Agora, toda vez que um push for concluído, o Git examinará o script post-receive e colocará os arquivos no lugar correspondente.

Configurando a Máquina Local

A máquina remota está pronta para aceitar atualizações de projetos Git recebidas. Em seguida, configuraremos o repositório local para usar o VPS como o servidor Git remoto.

Vamos criar um diretório de projeto Git de exemplo:

Configuring the Local Machine

Deployment with Git code screenshot 8

sample Git project directory:

Agora, inicialize o repositório:

Deployment with Git code screenshot 9

Temos que declarar o caminho remoto do repositório. Aqui, vamos nos referir ao local remoto como a branch live . Em seguida, execute o seguinte comando:

sudo git remote

Vamos testar. Adicionamos um script shell ao diretório do projeto:

project directory

Em seguida, adicione o arquivo ao projeto e faça um commit:

Deployment with Git code screenshot 10

No próximo comando, enviaremos o projeto para o live servidor:

Deployment with Git code screenshot 11

O Git se conectará ao VPS usando SSH. Se a conexão SSH foi configurada para usar uma senha, o Git solicitará a senha de autenticação.

Repositório Beta

E se o projeto não for implantado em uma única etapa? Talvez ele precise de mais testes dentro de um beta diretório. Usando o método descrito até agora, podemos criar outra branch no VPS, referida como a beta branch.

  • Configurando a Branch Beta no VPS

Primeiro, precisamos criar os diretórios para o VPS. Conecte-se ao VPS e crie um diretório sob /var/www:

Agora, precisamos de um repositório Git que funcionará como a beta branch:

Inicialize o repositório:

sudo git init

Assim como antes, implemente um post-receive script:

sudo nano

Depois disso, insira o seguinte código:

GNU nano

Salve o arquivo e feche o editor. Marque post-receive como um arquivo executável:

sudo chmod
  • Adicionando o Repositório Beta na Máquina Local

Agora estamos prontos para adicionar o repositório beta ao nosso repositório local. De dentro do diretório do projeto local, execute o seguinte comando Git:

Voilà! O repositório local agora está configurado com o repositório remoto beta. Tente enviar as alterações:

sudo git add
  • Movendo de Beta para Live no VPS

Digamos que todas as alterações estejam acumuladas no beta repo. Como você envia as alterações para o live repo? É muito simples. Dentro do beta repo no VPS, adicionamos o live repo local. Depois, simplesmente enviamos a beta versão para o live repo.

Conecte-se ao VPS e execute os seguintes comandos:

Depois, você pode enviar a versão beta para o live:

sudo git push live master

Considerações Finais

Este guia demonstra com sucesso como configurar e usar um VPS como um repositório remoto para o seu projeto Git. O VPS pode implantar automaticamente os códigos e arquivos mais recentes sem qualquer processo complexo. Ele também pode atuar como o centro de colaboração entre várias equipes de desenvolvimento.

Com a ajuda do Git, você pode estabelecer um mecanismo simples para implantação automática. Para um gerenciamento de projeto adequado, no entanto, é recomendável usar algo como o GitLab. O guia a seguir mostra a instalação e implantação do GitLab em um VPS que gerencia múltiplos projetos. Você também pode conferir como configurar pipelines de Integração Contínua (CI) do GitLab no Ubuntu 20.04.

Boa computação!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev é um designer criativo na CloudSigma, focado na construção de uma identidade empresarial consistente por meio de canais de marketing tradicionais e inovadores. Ele é hábil em combinar a visão artística com o marketing estratégico para criar narrativas de marca impactantes.

Comentários

Nenhum comentário ainda. Seja o primeiro.