Manual Deployment con GitHub en Digital Ocean

Artículo creado originalmente para ser publicado en Platzi Blog. Ver Platzi Blog

Manual Deployment es un proceso consistente en llevar de una manera manual el código que se encuentra en nuestra rama estable de el repositorio central, que puede esta alojado en Github, Bitbucket... y hacerle deploy en el server. Así como tener que hacer algunos comandos manualmente cuando queramos hacer deploy de nuevo.

Durante las clases del Curso Profesional de Git y GitHub hemos visto como hacer este proceso de Manual Deployment en AWS y en un Web Hosting(WebFaction) aunque también el profesor nos comentó de la posibilidad de usar Digital Ocean que es lo que veremos en este post.

Mi recomendación personal es que después de leer este artículo y hacer un deploy de prueba o lo que quieran, vean también como se hace el deploy en AWS y en WebFaction, así aprenderán a perfeccionar el uso del Manual Deployment así como que si tienen alguna duda la dejen abajo del todo.

Paso 1: Añadir llave SSH a nuestra cuenta de Digital Ocean

Debemos de crear una llave SSH en nuestra computadora, y registarla en Digital Ocean(solo la pública) para que al asignarla al droplet podramos acceder a él.

Para esto en nuestra terminar escribimos

$ ssh-keygen -t rsa

Una vez que hayamos generado nuestras llaves SSh y hayamos copiado la pública, vamos a Settings > User > Security > SSH Keys > Add New SSH Key, le ponemos el nombre que queramos y copiamos la llave SSH:

Paso 2: Creando nuestro droplet en Digital Ocean

Un droplet es la manera que tienen en Digital Ocean de considerar las instancias(como se llaman en AWS) las cuales son porciones de un servidor gigante reservadas exclusivamente para ti y que funcionan como un servidor de las características que tu les pusiste, gracias a procesos de virtualización.

Para crear nuestro primer droplet iremos al panel de control y haremos click en Create Droplet.

Tras esto nos saldrán distintas opciones que tenemos que configurar para crear la instancia según nuestras necesidades, para este ejemplo crearemos un droplet con Ubuntu 14.04 que traiga por defecto un servidor LAMP funcionando. Para ello haremos click en One-Click Apps y en LAMP on 14.04

Tras ello seleccionamos las características de nuestro droplet, que dependiendo de ellas dependerá su costo mensual/hora, yo elegiré la de menor características/precio ya que es un ejemplo. Aquí puedes ver las características y los precios:

El siguiente paso será elegir la región donde queremos ubicar el droplet. Lo normal es que elijas el datacenter más cercano a ti. Si tienes dudas puedes hacer tests de latencia aquí. Yo elegiré Amsterdam 2.

Finalmente podemos elegir algunas opciones adicionales como backups e IPv6. También tendremos que elegir la llave SSH que irá asociada al droplet para poder acceder, así como el nombre.

Listo. Damos click en el gran Create y empezará el proceso de creación del droplet:

Paso 3: Acceder al droplet de Digital Ocean e instalar Git

Una vez que tengamos nuestro droplet funcionando, accederemos vía SSH usando este comando:

$ ssh -i lugardelallave [email protected]

Tras esto, dentro del droplet actualizamos el sistema e instalamos Git:

$ sudo apt-get upgrade
$ sudo apt-get install git

Paso 4: Eliminando el contenido de prueba de nuestro sitio

El servidor LAMP que fue instalado en Digital Ocean mostrará todo lo que se ponga en la ruta /var/www/html, borraremos la carpeta html y la crearemos de nuevo ya que será donde se realizará el deploy.

$ rm -rf /var/www/html

Paso 5: Creando nuestro repositorio y haciendo deploy

Volveremos a crear la carpeta html y iniciaremos un nuevo repositorio allí, lo vincularemos(esta vez vía HTTP) con el repo universidadplatzi/blog-universidad y haremos un pull de él:

$ mkdir /var/www/html

$ cd /var/www/html

$ git init

$ git remote add origin https://github.com/universidadplatzi/blog-universidad.git

$ git pull origin master

Si todo salió bien, vamos a la IP de nuestro server en el navegador y veremos:

Portada: Github Universe