manual - MutakamwoyoCloud/MCloud GitHub Wiki

Anexo I: Manual de Instalación

Requerimientos

Zona proveedor:

  • Mínimo

    • Maquina con Linux como sistema operativo
      • Servicio FTP
      • Python 2.7.8
      • Pip
    • Conexión a internet estable
    • Direccion ip publica estática
  • Recomendado

    • Ubuntu 16.04 Virtualizado
    • Conexión Fibra óptica
      • Velocidad simétrica de más de 10 mb/s

Zona Cliente:

  • Mínimo
    • Maquina con Windows o Linux
      • Acceso a la red de alto coste
      • Acceso a la red bajo coste
      • Espacio de disco (el que desee según necesidades)
      • Node y npm instalados

Zona cliente

Dependencias

Instalar o tener pre-instalados los siguientes paquetes:

Npm y NodeJs Versión 7.0+

Lo utilizaremos tanto para realizar la conexión y la transmisión de datos entre las maquinas del Congo y Madrid a través del satélite.

Mongodb Versión 3.0+
$ sudo apt-get install npm
$ sudo apt-get install node
$ sudo apt-get install mongodb


Consideraciones: _Todas las librerías que utilicemos, deberán ser instaladas y compiladas en el sistema, de tal forma que no necesiten conexión a internet para funcionar.

Una vez tenemos las dependencias resueltas procedemos a descargar o clonar el repositorio:

#### Instalando la zona cliente

Dentro del repositorio viene un instalador que nos sirve para ambas zonas, esta en la raíz del repositorio y su nombre es install.sh.

A continuación, explicaremos su uso:

Uso: ${0##*/} [-hvd] [-t TYPE]
Instala Mcloud de diferentes maneras


    -h          muestra la ayuda
    -t TYPE     elige que parte de MCloud vas a instalar
    -v          modo verbose
    -d          modo desarrollador

    TIPO -t OPCIONES:
    
    client:     instala zona cliente
    provider:   instala zona proveedor
    

Ejecutamos el siguiente comando (vease [Figura AI.1]):

$ sudo ./install.sh -t client

Figura AI.1

Una vez tenemos todas las dependencias y la instalación es hora de ponerlo en marcha, inciamos la aplicación:

$ sudo mongod &
$ npm start

Figura AI.2

La aplicación cliente se encuentra corriendo como podemos ver en la [Figura AI.2], a partir de este momento los usuarios se podrán conectar a la aplicación a través de navegador indicando URL: puerto.

### Zona Proveedor
Dependencias

Instalar o tener pre-instalados los siguientes paquetes:

Python2.7 y pip Version 9.0+

Lo utilizaremos tanto para realizar la conexion y la transmision de datos entre las maquinas del Congo y Madrid a traves del satelite.

Servidor FTP

Para poner Mcloud en funcionamiento tenemos que tener activo en la zona proveedor un servidor ftp que se encarge de atender a las peticiones.

Da igual el software que uses en este apartado siempre y cuando consigas un servidor ftp atendiendo, nosotros en MCloud recomendamos el uso de proftpd, por su facilidad de configuracion:

$ sudo apt-get install proftpd

A continuacion mostramos una configuracion muy basica (vease [Figura AI.3]) para el funcionamiento adecuado con MCloud:

Figura AI.3

Instalando la zona proveedor

Al igual que con la zona cliente, podemos instalar todo lo necesario para el proveedor con el mismo repositorio y el mismo script, esta vez utilizaremos otra opción diferente y elegiremos el tipo proveedor (vease [Figura AI.4]):

sudo ./install.sh -t provider

Figura AI.4

Una vez instalado ya podemos iniciar nuestro servicio para que atienda a las peticiones, nos metemos con el usuario propietario del servicio (por defecto mcloud) y ejecutamos el servidor (vease [Figura AI.5]):

$ su mcoud
$ cd ~/MCloud/inet_side/mcloud_iside/
$ python iside.py

Figura AI.5

Configuración

Mcloud es configurable, todo el proceso que hemos explicado está hecho siguiendo la configuración por defecto creada para el modo desarrollo. Si quieres realizar otro tipo de instalación es conveniente que edites Mcloud/config.js:

{
	"provider" : {
		"url" : "localhost",
		"port" : 21,
		"user" : "mcloud",
		"password" : "mcloud",
		"pull" : "MCloud/inet_side/out/",
		"push" : "MCloud/inet_side/received/"
	},

	"clk" : {
		"on" : {
			"hour" : 20,
			"minute" : 0
		},
		"off" : {
			"hour" : 4,
			"minute" : 0
		}
	},

	"packet_limit" : 2,
	"pullFolder" : "./src/core/pull/",
	"pushFolder" : "./src/core/push/"
}
⚠️ **GitHub.com Fallback** ⚠️