Despliegue de Capistrano con Subversión

Despliegue de Capistrano

Capistrano es una herramienta utilizada para la automatización del proceso de implementación de aplicaciones. Capistrano se utiliza principalmente para implementar aplicaciones Rails. Los cambios realizados en la aplicación Rails se pueden transferir fácilmente al servidor mediante la implementación de límites. Capistrano se puede configurar con cualquier sistema de control de versiones como SVN/GIT para implementar una aplicación. Además, podemos definir el tipo de servidor de aplicaciones (mestizo, mod_rails / Fcgi) en el que se implementará la aplicación en Capistrano. Aquí voy a analizar la implementación de límites de una aplicación usando SVN con un clúster Mongrel como servidor de aplicaciones.

Instalación:

Capistrano se puede instalar como una gema de rubí como se muestra a continuación: $ gema instalar capistrano

Configurar una aplicación Rails para usar capistrano:

Esto se puede hacer ejecutando el siguiente comando desde la aplicación Rails:

Capificación $.

El comando anterior creará un archivo cap y config/deploy.rb archivo.

usuario@nombredehost [~/railsapp]$ capify . [agregar] escribiendo './Capfile' [agregar] escribiendo './config/deploy.rb'

usuario@nombredehost [~/railsapp]$ cat Capfile

cargar 'implementar' si respond_to?(:namespace) # cap2 diferenciador Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| cargar (complemento) }

cargar 'config/deploy' # elimina esta línea para omitir la carga de cualquiera de las tareas predeterminadas

usuario@nombre de host [~/railsapp]$ cat config/deploy.rb

set :application, “establece aquí el nombre de tu aplicación” set :repository, “establece aquí la ubicación de tu repositorio”

# Si no está implementando en /u/apps/#{application} en los servidores # de destino (que es el valor predeterminado), puede especificar la ubicación real # a través de la variable :deploy_to: # set :deploy_to, “/var /www/#{aplicación}”

# Si no está utilizando Subversion para administrar su código fuente, especifique # su SCM a continuación: # set :scm, :subversion

rol :app, “tu servidor de aplicaciones aquí” rol :web, “tu servidor web aquí” rol :db, “tu servidor de base de datos aquí”, :primario => verdadero

PD: Como alternativa, podemos crear directamente archivo cap y desplegar.rb archivo en la aplicación Rails y cargue los datos necesarios usando el editor 'vi'.

Capfile y Deploy.rb:

El Capfile contiene todas las tareas que deben realizarse durante la implementación del límite. Todas las funciones (tareas) dentro del Capfile se pueden definir usando la palabra clave 'tarea'. El grupo de funciones se denomina espacio de nombres.

Archivo Cap de muestra:

cargar 'implementar' si respond_to?(:namespace) diferenciador # cap2

cargar 'config/implementar'

espacio de nombres: implementar hacer

tarea :inicio, :roles => :aplicación hacer

ejecute “cd #{current_path} && mongrel_rails cluster::configure -e production -p #{mongrel_port} -N #{mongrel_nodes} -c #{current_path} –user #{user} –group #{user}”

ejecute “cd #{current_path} && mongrel_rails cluster::start”

ejecute “rm -rf /home/#{usuario}/public_html; ln -s #{ruta_actual}/public /home/#{usuario}/public_html”

ejecute "mkdir -p #{deploy_to}/shared/config"

ejecute “mv #{current_path}/config/mongrel_cluster.yml #{deploy_to}/shared/config/mongrel_cluster.yml”

ejecute "ln -s #{deploy_to}/shared/config/mongrel_cluster.yml #{current_path}/config/mongrel_cluster.yml"

fin

tarea :reiniciar, :roles => :aplicación hacer

ejecute "ln -s #{deploy_to}/shared/config/mongrel_cluster.yml #{current_path}/config/mongrel_cluster.yml"

ejecute “cd #{current_path} && mongrel_rails cluster::restart”

ejecute “cd #{current_path} && chmod 755 #{chmod755}”

fin

fin

El archivo config/deploy.rb contiene todas las variables que se utilizan durante la implementación del límite. Digamos que en el Capfile anterior accedemos a diferentes variables como: mongrel_port, user, chmod755, etc., lo mismo debe definirse primero en el archivo config/deploy.rb y luego solo Capistrano ejecutará la tarea correctamente.

Ejemplo de configuración/deploy.rb:

establecer: aplicación, “railsapp”

establecer: dominio, “nombre de host”

establecer: usuario, “usuario”

establecer: repositorio, “svn+ssh://#{usuario}@#{dominio}/home/#{usuario}/svn/#{aplicación}/trunk”

establecer: use_sudo, falso

establecer: grupo_escribible, falso

establecer :deploy_to, “/home/#{usuario}/apps/#{aplicación}”

establecer :deploy_via, :checkout

establecer :chmod755, “script de script de proveedor público de configuración de aplicación db lib/* public/disp*”

establecer: mongrel_port, “4000”

establecer: mongrel_nodes, "2"

default_run_options[:pty] = verdadero

rol: aplicación, dominio

rol :web, dominio

rol :db, dominio, :primario => verdadero

Aquí debemos colocar el nombre de la aplicación, el nombre de dominio y el usuario ssh apropiados. La aplicación Rails debe importarse al repositorio svn antes de continuar con la implementación del límite. El repositorio SVN se puede configurar como se muestra a continuación.

usuario@nombredehost [~]$ mkdir svn

usuario@nombredehost [~]$ svnadmin crear ~/svn/railsapp

PD: asegúrese de proporcionar también el mismo nombre de la aplicación Rails al repositorio svn.

Una vez hecho esto, podemos importar la aplicación Rails al repositorio svn:

usuario@nombredehost [~]$ mkdir -p ~/temp/railsapp/tags ~/temp/railsapp/branches

usuario@nombre de host [~]$ cp -pR ~/railsapp ~/temp/railsapp/trunk

Aquí asegúrese de proporcionar la ruta completa a Railsapp (el directorio de su aplicación Rails) mientras crea el directorio troncal. Además, se debe proporcionar el usuario, la aplicación y el dominio correctos en el archivo trunk/config/deploy.rb.

La aplicación Rails se ubicará en el directorio troncal y ahora se puede importar al repositorio svn.

usuario@nombredehost [~]$ svn import temp/railsapp file:///home/user/svn/railsapp -m “mensaje”

La aplicación Rails importada al repositorio svn (por ejemplo, ubicada en el servidor) se puede descargar en la máquina local como se muestra a continuación:

usuario@máquina local [~]$ svn co svn+ssh://usuario@nombredehost/home/usuario/svn/railsapp/trunk nombre de carpeta

Contraseña: Contraseña SSH del usuario

Ahora podemos encontrar el archivo capfile editado y el archivo implementar.rb en la carpeta desprotegida. Después de esto, desde RAILS_ROOT de la aplicación de versión local ejecute el siguiente comando.

Implementación del límite $: configuración

Despliegue de tapa $: frío

El comando 'cap desplegar: configuración' configurará la estructura de directorio inicial requerida para la aplicación implementada con límite.

Decir,

/inicio/usuario/aplicaciones

/home/usuario/aplicaciones/nombre de aplicación

/home/usuario/aplicaciones/nombre de aplicación/lanzamientos

/home/usuario/aplicaciones/nombre de aplicación/compartido

El comando 'cap desplegar: frío' verificará la aplicación Rails desde el repositorio svn y la colocará en un directorio interno: /home/user/apps/appname/releases. Más tarde se creará un enlace simbólico desde /home/user/apps/appname/releases/ /home/user/apps/appname/current. Además, la raíz del documento apuntará al directorio público de la versión actual como se menciona en el Capfile.

El directorio de lanzamiento contiene las aplicaciones implementadas en el servidor y la carpeta de la aplicación se nombrará de acuerdo con la fecha y hora en que se implementó la aplicación Rails.

Decir,

usuario@nombre de host [~/apps/railsapp/releases]$ ls -al

total 24

drwxrwxr-x 6 usuario usuario 4096 28 de abril de 2009.

drwxrwxr-x 4 usuario usuario 4096 9 de julio de 2009 ..

drwxr-xr-x 16 usuario usuario 4096 15 de octubre de 2008 20081015183834

drwxr-xr-x 21 usuario usuario 4096 3 de febrero de 2009 20081015183941

drwxr-xr-x 8 usuario usuario 4096 28 de abril de 2009 20090428215604

drwxr-xr-x 8 usuario usuario 4096 28 de abril de 2009 20090428221701

Los directorios que son comunes en la aplicación Rails (por ejemplo, imágenes, archivos de configuración, archivos de registro) se colocan dentro del directorio compartido y están vinculados simbólicamente a la versión actual.

Referencias: http://www.capify.org/index.php/Capistrano http://www.hostingrails.com/Capistrano-2-x-Deploying-Your-Rails-Application-on-HostingRails-com

Colaborador: vinaya

Póngase en contacto con nosotros.

Suscríbete para recibir las últimas actualizaciones

Artículos Relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESSpanish