Atualizar servidor web com Git

Atualizar um sistema produção pode ser muito fácil, tão simples como atualizar nosso repositório git. Depois de configurar o ambiente de produção, é usar o comando de atualização do git pra deixar tudo aualizado.

Antes de iniciar

Antes de iniciar precisa saber se o seu provedor de hospedagem oferece suporte ao Git. O Hostgator e Locaweb tem tanto acesso ssh como o cliente Git instalado. O básico do lado do servidor para usufruir deste recurso.

Parte-se do principio que já tenha uma chave SSH em seu sistema de desenvolvimento e de produção. Se ainda não tem veja neste artigo como criar uma.

Para ter acesso SSH sem precisar fazer login com senha no sistema remoto, pode ser com um programa de ftp tipo FileZilla adicione ao arquivo “authorized_keys” a chave que está no arquivo id_rsa.pub. Normalmente esse arquivo está no /.shh do seu servidor. Acrescente a chave em uma nova linha. Cada chave começa com ssh-rsa seguido de um código, ficando o arquivo parecido com esse exemplo abaixo (arquivo autorizando duas chaves SSH):

ssh-rsa AAAAB3Nz.......
ssh-rsa AAABB3Ns.......

Para acessar o servidor remoto via SSH você precisa digitar no terminal:

ssh -p [porta_de_acesso] [usuário]@[seu_dominio.com.br]

Podemos simplificar o acesso, configurando o ssh na máquina local editando o arquivo config dentro do diretório /.ssh do seu usuário:

cd ~/.ssh
nano config
Host myhost (Apelido_da_conexao)
HostName <host> (O dominio ou ip do seu servidor)
Port <port> (número da porta - ex: 2222)
User <user> (seu usuário de acesso ao servidor)
IdentityFile <~/.ssh/id_rsa> (opcional)
PreferredAuthentications publickey,password (opcional)

Como resultado, agora é só digitar ‘ssh myhost‘ para acessar o servidor remoto.

Configurando o servidor remoto

Com o acesso servidor de produção configurado, podemos iniciar um repositório Git do tipo “bare“, que só recebe os arquivos versionados. Fazemos isso executando no servidor de produção os comandos a seguir:

mkdir -p git/meu_projeto.git
cd git/meu_projeto.git
git --bare init

Criamos um pasta (mkdir) dentro da pasta “git” com nome do nosso projeto seguido de .git (meu_projeto.git), entramos na pasta (cd git/meu_projeto.git e executamos o camando ‘git –bare init‘ para iniciar o repositório remoto.

Ainda no servidor de produção vamos criar, dentro da pasta git do nosso projeto, um comando para atualizar a pasta onde o nosso projeto está realmente rodando. Para isso temos o ‘git-hook’:

$ nano  hooks/post-receive

Acrescentar o seguinte texto:

#!/bin/sh
GIT_WORK_TREE=/var/www/meusite.com.br git checkout -f

Tem que dar permissão de execução para o arquivo recém criado:

$ chmod +x hooks/post-receive 

Preparando o servidor local

Partindo do princípio que já tenha um projeto Git configurado e rodando em sua máquina local agora é só adicionar o repositório remoto:

git remote add <web> ssh:<//user@meusite.com.br:PORT/caminho/completo/git/meu_projeto.git>

Pronto! Agora basta enviar tudo pelo git para ter seu projeto atualizado no ambiente de produção on-line.

Publicado por

Lisanias Loback

Pastor na Igreja Casa de Oração Para Todos os Povos, trabalhando na área social no NUSELON - Núcleo Social Evangélico de Londrina, uma ONG que cuida de crianças em situação de riscos. Atua na área de ensino teológico e na área de TI. É formado em Teologia pela UNIFIL e é técnico em contabilidade.

Nos encoraje deixando seu comentário aqui.