Deployment com Ruby On Rails - Capistrano
Como desenvolvedor sempre surge a tarefa do deployment, ou seja, colocar o seu trabalho para rodar, no mundo web existe várias formas de fazer isso, exemplo se o site for em PHP, é comum a utilização de FTP, SFTP e RSYNC. Por outro lado se for java(JSP e Servlet) essa pode não ser uma medida eficiente já que normalmente envolve parar e iniciar o tomcat.
Mas independente da tecnologia, essa é uma terefa rotineira e repetitiva então é razoável automatiza-la, é comum nesse aspecto a utlização de shell scripts, .bat etc.
No mundo ruby on rails temos uma ferramenta muito boa para fazer isso é o : CAPISTRANO que automatiza essa tarefa, de forma muito elegante.
basicamente para utiliza-lo, você precisa seguir alguns passos básicos.
1. Instalar o capistrano atráves do GEM
gem install -y capistrano
2. Capification é basicamente criar alguns arquivos modelos no seu projeto Ruby On Rails , basta ir para raiz do seu projeto e digitar:
capify .
3. Algumas configurações basicas no arquivo config/deploy.rb
set :application, "seuprojeto"
set :repository, "https://urlseurepositorio/svn"
set :deploy_to, "/pathnoseuservidor/#{application}"
set :user, "userssh"
role :app, "servidorapp"
role :web, "servidorapp"
role :db, "servidorapp", :primary => true
Arquivo bem simples, e para quem já criou script de deploy na mão, é bem simples de entender.
4. Criar o arquivo script/spin, esse arquivo é que você colocar o comando para reiniciar sua aplicação no caso como eu uso Passenger, basta :
touch /pathyourproject/current/tmp/restart.txt
faça um commit das alterações.
5. Vamos criar a estrutura basica no nosso servidor
cap deploy:setup
6. E por último fazer um release
cap deploy:update //(copia os última versão do servidor de código fonte) cap deploy:start //(faz o release, e se for caso reinicia a aplicação)
pronto em questões de minutos usando o Capistrano você automatiza o deployment do seu projeto,
eu já fiz shell script para fazer isso e também já usei o Apache Ant e digo uma coisa o
Capistrano é uma solução elegante para essa tarefa.
Leave a Reply