Dando continuidade aos posts sobre Git, o assunto agora é deploy. Realizar o deploy através do Git é muito simples e muito pratico.
Desde o momento que comecei a realizar o deploy dos meus projetos esse processo ficou muito mais fácil.
Partindo do principio que você já está com seu projeto versionado com o Git, o primeiro passo é configurar o servidor de produção.
Depois de logado no servidor, crie uma pasta dentro de um diretório de sua preferência:
cd /var mkdir git && cd git mkdir projeto.git
Depois vamos inicializar o diretório como Bare onde só são armazenados os arquivos do projeto sem configurações do .git.
cd projeto.git git init --bare
O próximo passo é criar o script que será responsável por copiar os arquivos do projeto para o diretório onde o seu projeto vai rodar.
cd hooks vim post-receive
Inclua as linhas no arquivo post-receive.
#!/bin/sh GIT_WORK_TREE=/var/www/projeto git checkout -f
De as permissões de leitura e escrita:
chmod 777 post-receive
Agora na sua maquina de desenvolvimento no diretório do projeto:
git remote add web ssh://user@ipdoserver/var/git/projeto.git
Ajuste o comando a cima com as credenciais do seu servidor web.
Realizando o push da branch master:
git push web +master:refs/heads/master
Na primeira execução será enviado todos os arquivos do projeto. Nos próximos deploys serão enviados apenas os arquivos alterados.
De acordo com as seus commits, execute o comando para publicar novamente:
git push web
Com esse processo você fica livre do FTP e passa a utilizar um procedimento muito mais automatizado.
Para quem usa a Amazon(aws) e utiliza certificados, salve a chave na “authorized_keys”.
cat ~/.ssh/id_rsa.pub | ssh -i ~/.ssh/your_pemfile.pem ubuntu@your_ip_addr "cat>> .ssh/authorized_keys"