Un pequeño tutorial de instalación de Webistrano.

Este tutorial esta pensado para aquellos administradores que utilizan Debian y deseean iniciar una administración centralizada de una red Linux-UNIX mediante SSH-BASH-Ruby.

Instegración bajo Apache| Manejo de proyectos en Webistrano

Hola a todos!

Ahora que debo trabajar con Webistrano y Capistrano para instalar un servidor de distribución de aplicaciones (Application Deployment), pensé que sería un excelente pretexto para escribir el tutorial... como muchos ya me conocerán, siempre hacemos la instalación, configuración, puesta a punto y los guiones en BASH para la administración general de los servidores y al final que queremos escribir las notas ya no tenemos tiempo.

En esta ocasión voy a escribir este tutorial al tiempo que estoy configurando los servidores, de forma que sea más fácil de seguir todos los pasos y de verificar los errores, bajo riesgo que algunos de ellos no se haya solucionado todavía.

Capistrano es una herramienta para distribución de aplicaciones y su objetivo es automatizar tareas remotas en uno o varios servidores. Capistrano ejecuta tareas de dministración en paralelo en los equipos remotos y permite llevar un control de cambios para recuperar el estado anterior de dichos equipos (bueno, en principio así debe ser). Esta herramienta es ideal para aquellos administradores que tienen a su cargo más de un servidor. Capistrano depende de Ruby, RubyGems, Apache 2.0, MySQL 5.0 y Subversion, y ya que en mi equipo yo tengo instalado Subversion, Apache y MySQL, solo daré los detalles de la instalación de las otras herramientas.

En una sesión de root escriba el comando

# apt-get install ruby rubygems rake 
# apt-get install libopenssl-ruby ruby1.8-dev libmysql-ruby libmysqlclient-dev

para instalar las herramientas y las diversas bibliotecas de las que depende Ruby y RubyGems.

Ahora debe escribir el comando

# gem install capistrano
# gem install rack -v=1.0.1
# gem install rails
# gem install mysql

para que Ruby instale Capistrano y las bibliotecas para comunicación segura sobre la red. Se instalarán seis paquetes que son Net::SSH, Net::SFTP, Net::SCP, Net::SSH::Gateway, HighLine y Capistrano.

El que quiera instalar capistrano de manera manual, puede descargar el código fuente desde el sitio Web de GitHub directamente en el siguiente enlace http://www.github.com/capistrano/capistrano Ahí mismo encontrará las instrucciones para su instalación.

Webistrano

La instalación de Webistrano se realiza manualmente de la siguiente forma:
  • Descargue el archivo compactado desde la página oficial descargas de Webistrano o puede hacer clic directamente sobre este enlace Webistrano 1.5
  • Una vez que haya terminado la descarga del achivo, descomprimalo en el directorio donde desee que se guarde
    # cd /var/opt/ 
    # unzip /ruta/a/descargas/webistrano-1.5.zip
    
  • Configure las tablas para webistrano en la base de datos y cree el usuario webistrano Setup the database tables and create a new webistrano user (obviously be conscious of your security preferences for access to your database in the host and password portions):
    # mysqladmin -u root -p create webistrano
    # mysql -u root -p
    Enter password:****
    mysql> CREATE USER 'webistrano'@'localhost' IDENTIFIED BY 'password'; 
    mysql> GRANT ALL PRIVILEGES ON `webistrano`.* 
           TO 'webistrano'@'localhost' WITH GRANT OPTION;
    
    Debe tener cuidado con los apóstrofes y la comilla, note que al asignar los privilegios se han utilizado comillas invertidas para determinar el nombre de la base de datos.
  • En el directorio donde decompactó Webistrano deberá deberá crear un archivo de configuración funcional. Para ello, entre al directorio de configuración
    # cd config
    
    y copie el archivo de ejemplo con
    # cp database.yml.sample database.yml
    
    y mantenga la versión original para poder iniciar una nueva configuración si algo no sale bien.
  • Edite este archivo para agregar la información sobre la configuración de la base de datos de MySQL. Esta información debe colocarse en la sección production. De manera predeterminada la aplicación utiliza un socket para nuestro caso vamos a utilizar las variables host: y port: de la siguiente forma
    production:
      adapter: mysql
      database: webistrano
      username: root
      password: ********
      host: localhost
      port: 3306
    
  • Copie el archivo de ejemplo de la configuración de webistrano con
    # cp webistrano_config.rb.sample webistrano_config.rb
    
    y agregue la información de las cuentas de correo que recibirán las notificaciones.
  • Ahora le puede indicar a Rails que desea construir la base de datos que acaba de crear.
    # RAILS_ENV=production rake db:migrate 
    
  • Ahora probemos si Webistrano está funcionando debidamente con
    # ruby script/server -d -e production -p 3000  
    
    Deberá tener una página igual a la siguiente

En el siguiente artículo veremos como atender de manera automática la administración general de Capistrano.

Hasta la próxima...

Instegración bajo Apache| Manejo de proyectos en Webistrano