|
|
@@ -47,173 +47,3 @@ exit
|
|
|
con el vi modificamos la linea de acceso a la base de datos cambiando docker.ugr.es:15035 por hadoop.ugr.es:14037 que es el puerto que le asignamos a nustro contenedor con mongo.
|
|
|
Con esto ya tendríamos configurada la parte de nginx en la que se muestra nestro index con acceso a la base de datos pero la base de datos todavia no se ha configurado vamos a pasar a ello
|
|
|
Nos conectamos a nuestro contenedor o directamente desde una aplicación externa como compass a nuestra base de datos mongo y replicamos la base de datos que teníamos en la practica anterior y podemos observar como nuestro servidor http se conecta a nuestro servicio mongodb.
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-##### 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
|
|
|
-```
|
|
|
-
|
|
|
-
|
|
|
-##### Conexión a la máquina instanciada
|
|
|
-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
|
|
|
-```
|
|
|
-
|
|
|
-
|
|
|
-##### Provisionar las máquinas y configurarlas
|
|
|
-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 php5-dev php5-cli php-pear
|
|
|
-apt-get install nginx
|
|
|
-pecl install mongo
|
|
|
-```
|
|
|
-
|
|
|
-Seguiremos [este](https://www.solvetic.com/tutoriales/article/1346-conexion-de-php-con-mongodb/) tutorial para configurar mongodb en php.
|
|
|
-
|
|
|
-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](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](https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-centos-7)):
|
|
|
-
|
|
|
-```
|
|
|
-[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
|
|
|
-```
|
|
|
-
|
|
|
-Antes de lanzar mongo es necesario al menos en CentOS abrir el puerto de escucha 80
|
|
|
-para ello podemos seguir los pasos que se describen [aquí](http://ask.xmodulo.com/open-port-firewall-centos-rhel.html)
|
|
|
-Guardamos el fichero y ejecutamos los siguientes comandos:
|
|
|
-
|
|
|
-```
|
|
|
-yum repolist
|
|
|
-yum install mongodb-org
|
|
|
-iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
|
|
|
-iptables -I INPUT -p udp -m udp --dport 80 -j ACCEPT
|
|
|
-service iptables restart
|
|
|
-mongod --port 80 &
|
|
|
-```
|
|
|
-
|
|
|
-
|
|
|
-##### Prueba y producción
|
|
|
-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](http://askubuntu.com/questions/134666/what-is-the-easiest-way-to-enable-php-on-nginx)
|
|
|
-Una vez hemos realizado todas las configuraciones descargamos nuestra aplicación web
|
|
|
-sencilla en el directorio /usr/share/nginx/html en nuestro caso con el siguiente comando:
|
|
|
-
|
|
|
-```
|
|
|
-wget https://makefile.es:3000/okynos/Practica1CC2/raw/master/index.php --no-check-certificate
|
|
|
-```
|
|
|
-
|
|
|
-Nos descargará el fichero index.php directamente de mi repositorio git público.
|
|
|
-Si todo está bien configurado y conectado deberá aparecer una página como la siguiente:
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-En la cual podemos observar los registros de la base de datos, insertar y borrar los mismos.
|
|
|
-
|
|
|
-
|
|
|
-##### Descripción y uso de la appweb
|
|
|
-La aplicación consiste en un sistema simple de consulta y edición de registros
|
|
|
-de una base de datos MongoDB, la aplicación consta de un formulario de introducción
|
|
|
-de datos muy sencillo en el que se introduce el nombre y el correo electrónico de la persona
|
|
|
-que deseemos registrar en el sistema, al pulsar el botón enviar, se almacenará en nuestra
|
|
|
-base de datos el registro asociado y se mostrará en la misma página como resultado
|
|
|
-de una consulta.
|
|
|
-La base de datos consta de una tabla llamada Test y una colección llamada elements
|
|
|
-dentro de esa colección se almacena por cada registro un identificador, un nombre y un email.
|