Deployment con deprec

Capistrano es una estupenda herramienta que nos simplifica y automatiza el despliegue de aplicaciones (deployment). Utiliza unos de archivos de configuración para realizar esas tareas, que podemos modificar dependiendo de nuestras necesidades. Lo que deprec hace es servirnos una serie de recetas precocinadas para Capistrano. En la actualidad (1.9) sólo funciona cuando el deployment es a un Ubuntu 6.06.1 Server LTS, pero en el futuro (2.0) el sistema operativo se servirá como un plugin. Éste screencast nos muestra como de rápido podríamos tener un servidor funcionando con todo lo necesario empezando desde cero.

El procedimiento sería el mismo en servidores remotos (sin utilizar Parallels), y sería resumiendo algo así:

Nota: he modificado algunas cosas que no aparecen el el vídeo, que me hicieron falta para que funcionase.

En el la máquina remota:

sudo apt-get install openssh-server

En la máquina local:

Cremos nuestras keys si no las tenemos
ssh-keygen -t rsa

Subimos las keys al servidor:
cap setup_ssh_keys
sudo gem install deprec -y
echo "require 'deprec/recipes'" >> ~/.caprc

Para que recoja las llaves ssh y no nos pregunte todo el rato la clave:
echo ssh_options[:keys] = %{/Users/jesus/.ssh/id_rsa} >> ~/.caprc

Creamos la aplicación:
rails myapp

Le aplicamos deprec:
cd myapp
deprec --apply-to .

Configuramos config/deploy.rb
Modificamos el :domain, :application, :user.

Instalamos lo necesario para que funcione Rails (Apache, Ruby, etc.)
cap install_rails_stack

Instalamos la aplicación:
cap setup

Añadimos soporte para svn:
cap setup_scm

Actualizamos la aplicación con las migraciones:
cap deploy_with_migrations

Reiniciamos Apache:
cap restart_apache

Ahora en cada actualización utilizaremos:
cap deploy

Y si queremos volver a una versión anterior:
cap revert

Leave a comment