Práctica 2: Provisionamiento de máquinas virtuales

Descripción

Se trata de escribir un fichero que despliegue la infraestructura virtual para los servicios que se van a usar en el proyecto de la asignatura.

Prerrequisitos

Haber alcanzado el 80% de los objetivos de las ocho primeras semanas de la asignatura.

Explicación

El primer paso será crear una instancia de una máquina virtual y dotarla de un sistema operativo básico, aunque para algunos sistemas de aprovisionamiento como Chef habrá que usar imágenes específicas que tengan un cliente de chef-solo ya instalado.

Una vez que se tiene una instancia de una máquina virtual creada y funcionando, lo siguiente es dotarla de la infraestructura necesaria para ejecutar nuestro programa. A priori puede que no sepamos en concreto qué es lo que vamos a usar, pero al menos tendremos una idea de las aplicaciones y librerías que se van a usar, y siempre se tendrá que crear alguna infraestructura básica: instalación de git, creación de un usuario y de los directorios que se van a usar desde nuestra aplicación.

Para configurar esta máquina virtual se usarán scripts de Chef, Ansible, Salt, Rex, Puppet o el programa que se desee. Como es una continuación del hito anterior, se tendrán que desplegar, en una o varias máquinas virtuales, los programas mencionados, así como la infraestructura necesaria para que funcionen tales programas.

Con que se cree y configure un sólo sistema de provisionamiento (como Ansible o Chef) es suficiente, pero si se hace con dos sistemas contará como puntos adicionales.

Los ficheros de aprovisionamiento se pondrán en un directorio aparte, preferiblemente llamado provision. En caso de necesitar varios ficheros, se aconseja que se cree un directorio adicional, dentro de este, con el nombre del sistema de provisionamiento correspondiente.

Finalmente, los ficheros tienen que funcionar correctamente y crear toda la infraestructura desde 0. Conviene que se elija una imagen de un sistema operativo original lo más básica posible. Imágenes poco básicas ocupan más especio y consumen más recursos.

Así mismo, se aconseja a los alumnos que presenten su proyecto al certamen de proyectos de la UGR o a cualquier otro concurso cuyas condiciones cumpla. La participación en el concurso se considerará positivamente.

Entrega de la práctica

Subir los fuentes a GitHub y editar este fichero enlazando el último commit en el que se indique claramente el nombre del alumno y la dirección donde se ha subido el fuente. El commit se referirá al número de issue que se haya propuesto en el repositorio propio. Si se va a hacer en coordinación con otros proyectos se puede indicar en el mismo README.md.

Se recuerda que el README.md es la descripción del proyecto; por eso, deberá incluir las instrucciones para configurar la máquina virtual objetivo y ejecutar el provisionamiento desde nuestro ordenador, incluyendo lo que hay que hacer para instalarlo en nuestra máquina local. En la documentación (en una rama aparte o donde se haya elegido) se tendrá que mostrar que efectivamente se ha podido hacer provisionamiento de alguna máquina virtual o incluso de varias y que están ejecutando los servicios desplegados.

La explicación del proyecto deberá incluir los criterios usados para elegir esa herramienta. Esta documentación se incluirá en ficheros MarkDown en una rama diferente a master.

Valoración

Si el repositorio no existe, tiene algún error, no se ha hecho pull request correctamente o no están los fuentes publicados, la práctica estará suspensa. Si no se ha aprobado el hito anterior no se corregirá hasta que no se haga correctamente.