Você recebe a seguinte missão: Fazer o deploy de uma aplicação XPTO em 10 servidores.
Fazer isso em um servidor é tranquilo você gasta no máximo 5 minutos, agora faz esse processo acima em 10 servidores!
Uma maneira de resolver isso é usando o Fabric, uma ferramenta bem simples que você escreve funções Python com os comandos shell que você precisa executar, o Fabric vai ler a lista de servidores e vai executar a função de deploy em cada um.
Vamos escrever um arquivo fabfile.py que o arquivo padrão que o Fabric vai ler.
from fabric.api import run, env env.hosts = ['10.0.0.1', '10.0.0.2', '10.0.0.3', '10.0.0.4', '10.0.0.5', '10.0.0.6', '10.0.0.7', '10.0.0.8', '10.0.0.9', '10.0.0.10'] env.user = 'deploy' env.key_filename = '~/devops/XPTO/deploy.pem' def deploy_XPTO(): '''Não é só você que vai usar isso! Então documente. Essa função faz deploy!''' run('cd /srv/XPTO') run('git pull') run('service php-fpm restart')
OK, nossa “receita de bolo” de deploy está pronta, vamos executar mas antes vamos ver a descrição do que a receita faz digite fab -l.
# fab -l Available commands: deploy_XPTO Não é só vc que vai usar isso! Entao documente. Essa função faz deploy!
Agora vamos executar o deploy.
# fab deploy_XPTO [10.0.0.1] Executing task 'deploy_XPTO' [10.0.0.1] run: cd /srv/XPTO ....
E Abracadabra! Eu não preciso dizer que você só vai executar o deploy depois que o código foi muito bem testado!
Mas a ideia aqui é mostrar um jeito de automatizar um deploy em um exemplo bem simples, Fabric faz muito mais que isso, o Instagram usava ele para fazer o deploy antes de ser comprado pelo Facebook veja aqui. E a última dica não se intimide com as funções python do Fabric, Python é mais fácil do que você imagina!
Gostou do conteúdo? Tem alguma dúvida? Entre em contato com nossos Especialistas Mandic Cloud, ficamos felizes em ajudá-lo.