jueves, 9 de junio de 2016

Cómo desplegar aplicaciones Ruby on Rails y Postgres con Docker Compose

Docker Compose es una herramienta para definir y correr aplicaciones Docker multi-contenedores. Este tutorial aprenderás a cómo desplegar una aplicación Ruby on Rails con una base de datos Postgres.

Antes de empezar

Para completar existosamente este tutorial, necesitaremos lo siguiente:



Paso 1: Crear una aplicación Docker Compose

La primera tarea que debemos cumplir es crear nuestra aplicación Ruby on Rails y Postgres, y nuestros archivos de configuración para Docker Compose y Distelli. Para empezar, cree un directorio para almacenar sus archivos, en este ejemplo lo llamaremos ruby-rails-compose.

En su directorio cree un archivo Dockerfile con el siguiente contenido:

Dockerfile



Luego necesitamos crear un archivo docker-compose.yml con el siguiente contenido:

docker-compose.yml



Cree un archivo llamado Gemfile con el siguiente contenido:


source 'https://rubygems.org'
gem 'rails', '4.2.0'

Luego creamos un archivo Gemfile.lock sin contenido:

$ touch Gemfile.lock

Nuestro próximo paso es inicializar nuestro proyecto Rails. Ejecute el siguiente comando en el root de nuestro directorio del proyecto:

rails new . --force --database=postgresql --skip-bundle

Abra su archivo Gemfile y descomente la siguiente línea:

gem 'therubyracer', platforms: :ruby

Reemplace el contenido del archivo config/database.yml con el de abajo:



Finalente, crearemos el distelli-manifest.yml. El manifest es un conjunto de instrucciones para construir y servir nuestra aplicación.

distelli-manifest.yml
Reemplace <-username-> con su nombre de usuario de Distelli y <-app name-=""> con su nombre de aplicación Distelli



Eso es, estamos listos para desplegar nuestra aplicación. Para esta seguros, puede checar la estructura de su proyecto con la estrcutura siguiente:


Paso 2: Colocar su código a GitHub/BitBucket

El próximo paso a completar es colocar su código en un repositorio de control de fuentes. Si usted no está familiarizado con un control de fuentes, los pasos siguientes lo guiarán en este proceso. Para este tutorial se está usando GitHub como repositorio, pero puede usar BitBucket sin nungún problema.

Primero usted necesita crear un repo en GitHub y coloque su código en ese repositorio. Una vez creado, abra su terminal y asegúrese de estar en el directorio donde se encuentra el código de su aplicación.

Inicialice el código local como un repo Git:

git init

Añada los archivos en su nuevo repo local:

git add .

Haga un commit de esos archivos:

git commit -m "Primer commit"

Navegue a su repo GitHub o BitBucket y encuentre su URL del repositorio remoto. Una vez lo tenga, ejecute el siguiente comando para finalizar la configuración de su repo:

git remote add origin "Aqí va la URL del repositorio remoto"
git remote -v

Ahora envíe los cambios a su repositorio:

git push origin master


Paso 3: Crear aplicación Distelli

Si usted no tiene una cuenta Distelli, cree una aquí.

Para crear su aplicación en Distelli, siga estos sencillos pasos:

Clic en el botón New App en la pantalla principal de su cuenta Distelli.



Seleccione el tipo de repositorio donde está almacenando los archivos de su aplicación.


Después hacemos clic en el botón para conectarnos con nuestro repositorio, luego selecconamos el repo apropiado que tiene nuestro código.


Seleccione la rama (branch) apropiada para la implementación. En este ejemplo tenemos únicamente una rama maestra (master branch), pero usted puede implementar cualquier rama de su repositorio.


Luego Distelli te preguntará para establecer sus pasos de contrucción. Ya que hemos creado un archivo distelli-manifest.yml, marcamos el checkbox para usar este archivo.


El paso final es seleccionar nuestra generación de imagen. En este caso vamos a seleccionar "Distelli Base" para nuestra aplicación. Seleccione la opción Auto Build y luego el botón Looks good. Start Build!.

La característica Auto Build genera su aplicación cada vez que usted hace un commit de su código a su repositorio.


Visite the Builds para ver el progreso de la generación de su aplicación.



Paso 4. Instale Distelli Agent y añada un servidor

El próximo paso en implementar nuestra aplicación es estar seguros de tener un servidor para correr nuestra aplicación. Puede usar cualquier tipo de servidor (nube pública, nube privada o físico). Distelli le permite implementar su código a VM Vagrant o en una VPC. Usted puede tambien incluso implementar al servidor bajo su escritorio. Para este tutorial vamos a hacer implementación en un servidor hospedado por DigitalOcean.

Nota: Necesitará acceso remoto al servidor onde va a hacer la implementacón y permisos de root (administrador).

Instale el Distelli Agent en su servidor

Para ser capáz de implementar su aplicación en nuestro servidor necesitará instalar el Agente Distelli. Necesitará acceso remoto a su servidor para completar la instalación. Por favor consulte la siguiente información sobre cómo instalar el Distelli Agent en su servidor.

Linux y MAC OS X

Para instalar en Linux o MAC OS X usted puede usar curl o wget con una de las siguientes sintaxis:

Ejemplo con wget

wget -qO- https://www.distelli.com/download/client | sh

Ejemplo con curl

curl -sSL https://www.distelli.com/download/client | sh


Completar la instalación

Para completar la instación del agente, usted debe escribir el siguiente comando en el terminal:


/usr/local/bin/distelli agent install

Aquí está la informacón que se genera cuando se instala el Distelli Agent y cuando se completa la instalación.



Verifique la instalación

Para validar que el agente esté instalado y trabajando, use el siguiente comando (debe de tener permisos de root).

/usr/local/bin/distelli agent status

Luego aparecerá el siguinte mensaje de que está instalado y corriendo

Distelli Agent (serverA) is Running with id 

Para más información de cómo instalar el Agente Distelli por favor visite, installing the Distelli Agent.


Creando un nuevo ambiente

Ahora que hemos instalado el Distelli Agent necesitamos crear un ambiente y añadir nuestro servidor a ese ambiente. Para empezar, navegue a la página de su aplicación en Distelli y haga clic en la pestaña Environments.



En nuestra página de ambientes haga clic en el botón New Environment. Escriba un nombre para su nuevo ambiente y luego clic en el botón Create Environment.



Una vez cree el nuevo ambiente, estamos listos para implementar nuestra aplicación. Navegue de nuevo a la página Builds para empezar la implementación de su aplcación.


Paso 5: Implementar Aplicación

Ahora qu nosotros hemos generado exitosamente nuestra aplicación, estamos listos para implementarla en nuestro servidor. en la página Builds seleccione el botón New Deployment que se encuentra en la esquina derecha.



Implemetar su aplicación

Una vez haga clic en el botón, usted debería ser direccionado a la página Deployment de Distelli. El primer paso es seleccionar la opción Deploy a Release.


Distelli le pedirá que seleccione la aplicación que quiere implementar. Seleccione la aplicación que se creó hace poco en este tutorial.


A continuación, se le pedirá que seleccione la versión que desea implementar. Asegúrese de seleccionar su última versión, que se encuentra en la parte superior de la lista.


Luego seleccione el ambiente que usted creó y luego haga clic en el botón All Done.


Ahora Distelli le preguntará para añadir su servidor. Clic en el botón Add Servers para empezar. Seleccione el servidor que configuró hace poco en este tutorial y añádalo a su cuenta. Una vez que haya añadido su servidor, puede cerrar el panel Add Servers y continuarcon su implementación. Verá una opción final para establecer su delay entre implementaciones en su servidor y un botón Deploy!.


Clic en el botón Deploy! para empezar su implementación. Usted será redireccionado a una página donde usted puede ver el progreso de su implementación. Simplemente haga clic en el botón log al lado izquierdo que lo habilita para en tiempo real los logs que se generan mientras se hace la implementación.



Ver su aplicación

Y eso es todo. Su aplicación Ruby on Rails ha sido implementado. Dirija su navegador hacia la dirección de su http://<-your address-="" ip="" s="" server=""> y vea la página por defecto del proyecto ruby on Rails.


Fuente: Distelli


También te puede interesar

Ruby on Rails Bootstrap - Construir una App de administrador de contactos


No hay comentarios.:

Publicar un comentario