Repositorio de la práctica 1 de Cloud Computing Servicios y aplicaciones, trabajando con OpenNebula.

Okynos a05ff458b1 minor fix 9 年之前
README.md be4e5c4ea6 Incrementando la documentación 9 年之前
form.php a8d75de35f PHP y HTML partidos 9 年之前
index.php a05ff458b1 minor fix 9 年之前

README.md

Práctica 1 Cloud Computing

Interacción con OpenNebula

José Luis Fernández Aguilera

En esta documento se van a detallar las actividades que se han realizado paso por paso durante la realización de las tareas descritas en el guión de la práctica 1.

Paso 1 - Creación de máquinas virtuales

Para este paso vamos a pasar a detallar cada máquina virtual que vamos a crear en OpenNebula.

Creación de una máquina virtual mediante línea de órdenes

Vamos a detallar cómo hemos creado una instáncia de Ubuntu mediante línea de órdenes. En primer lugar es necesario conectarnos mediante ssh al servidor y loguearnos en OpenNebula desde línea de órdenes para ello sólo tenemos que ejecutar este par de comandos

ssh mmcXXXXXXXX@docker.ugr.es
oneuser login mccXXXXXXXX --ssh --force

Una vez hemos accedido al servidor y nos hemos logueado en OpenNebula podemos realizar varias acciones, en nuestro caso particular vamos a observar las imágenes que están disponibles en OpenNebula con este comando:

oneimage list

Y se nos mostrarán las imágenes de las que dispone el servidor en nuestro caso podemos fijarnos en la siguiente:

ID USER       GROUP      NAME            DATASTORE     SIZE TYPE PER STAT RVMS
10 oneadmin   users      Ubuntu-14.04    default        10G OS    No used    2

Esta línea nos indica que existe una imagen de Ubuntu que en líneas generales es lo que estabamos buscando, ahora es necesario crear una plantilla para crear una instancia con esa imagen pero antes es necesario crear una red virtual o saber su identificador si ya está creada, en este caso ya está creada y lo podemos observar con el comando:

onevnet list

Y se nos mostrará la lista de todas las redes virtuales a las que tenemos acceso buscamos la que hace referencia a nosotros, en nuestro caso es la vnet con ID: 221 una vez tenemos todos los datos vamos a crear la plantilla con este comando:

onetemplate create --name "Plantilla_Ubuntu14" --cpu 1 --vcpu 1 --memory 512
--arch x86_64 --disk 10 --nic 221 --ssh --net_context

Vamos a detallar los parámetros que hemos escrito:

  • name, especifica el nombre de la plantilla que estamos creando.
  • cpu, número de cpus que se le asignarán a la máquina cuando se instancie.
  • vcpu, número de cpus virtuales.
  • memory, es la cantidad de memoria ram que se le asignará a la máquina.
  • arch, definimos la arquitectura de la máquina virtual.
  • disk, se refiere al identificador de la imagen que se instalará en la máquina virtual.
  • nic, es el identificador de nuestra red virtual.
  • ssh, define que se puede acceder por ssh a la máquina.
  • net_context, implica que se utilizará un contexto de red.

La ejecución del comando nos ha retornado el identificador de la plantilla que en este caso es 596, para instanciar una máquina virtual asociada a esta plantilla sólo es necesario lanzarla con el siguiente comando:

onetemplate instantiate 596

Cuando el comando termina su ejecución nos devolverá un identificador de máquina virtual que en nuestro caso es 714, ya tenemos nuestra máquina desplegada vamos a pasar ahora a configurar el servicio web dentro de la misma, para ello accedemos a la máquina a través de estos comandos:

onevm show 714
ssh root@192.168.10.75

el primer comando nos retorna la información asociada a nuestra máquina virtual mientras que el segundo se conecta como root a la ip que hemos obtenido con el comando anterior. Ahora ejecutamos la instalación de nginx, ya que hemos instalado una versión de ubuntu para instalar nginx ejecutamos las siguientes ordenes:

apt-get update
apt-get install php5-common php5-cli php5-fpm
apt-get install nginx

Ya deberíamos poder acceder a la página principal de nuestro servidor web, para ello accedemos al siguiente enlace, http://docker.ugr.es:15075 Una vez hemos comprobado que el servidor web funciona de manera correcta continuamos añadiendo una página php simple que se conectará a la base de datos de la máquina que vamos a crear a continuación.

de la misma forma que antes creamos la plantilla e instanciamos la máquina e instalamos mongodb, ejecutando los siguientes comandos:

onetemplate create --name "Plantilla_CentosCC" --cpu 1 --vcpu 1 --memory 512 --arch x86_64 --disk 8 --nic 221 --ssh --net_context
onetemplate instantiate 599
ssh root@192.168.10.74
yum update
vi /etc/yum.repos.d/mongodb-org.repo

Al ejecutar vi o nano incluimos el siguiente código en el fichero(extraido de DigitalOcean):

[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

Guardamos el fichero y ejecutamos los siguientes comandos:

yum repolist
yum install mongodb-org
mongod --port 80 &

Ya que hemos configurado y ejecutado todo vamos apasar a incorporar nuestra aplicación web en html+php en el servidor nginx que hemos desplegado, para ello y ya que lo hemos subido a un repositorio de git público utilizamos el comando wget para descargarnos los ficheros, aún así nginx necesita algunas configuraciones que se pueden consultar en la siguiente página