Qué es Cloudy

De Guifi.net - Wiki Hispano

Revisión a fecha de 18:02 26 ene 2015; Conxuro (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Clommunity-logo.png
Logo guifi.svg

Cloudy [1] es una distribución basada en Debian GNU/Linux [2] desarrollada en el marco del proyecto europeo CLOMMUNITY.[3]

Esta distribución, inspirada en la idea de la antigua Guinux [4], facilita el despliegue y la gestión de los servicios de red en la nube (cloud services)[5], así como la compartición de estos. Pensada en particular para los usuarios de redes comunitarias.[6]




Introducción

Antes de la adopción general de servicios en la nube (cloud services)[5] los usuarios de redes comunitarias [6] ya compartían o proveían servicios y recursos a la comunidad; sin embargo, estos usuarios eran una minoria. Una de las principales razones es la barrera tecnológica. Antes de proveer contenidos, los usuarios que quieren compartir información con la comunidad tienen primero que preocuparse de los aspectos técnicos como el despliegue/montaje de un servidor con un conjunto de servicios.

En el pasado, los usuarios de Guifi.net, intentaron superar este problema publicando una distribución GNU/Linux llamada Guinux [4], que daba a los usuarios finales una solución fácil para ofrecer servicios a la comunidad (tales como proxy web, servidor DNS, monitorización y gráficas).

La clave principal de Guinux era un conjunto de scripts[7] que automatitzaban el proceso de configuración. Los usuarios solo tenían que introducir unos pocos parámetros como la dirección de correo electrónico y el identificador del nodo. Enseguida, después de estar disponible la distribución, el número de usuarios compartiendo recursos aumentó considerablemente.

De acuerdo con esto, quedó claro que reduciendo (o eliminando) la barrera d'entrada tecnológica animó a los usuarios a proveer de más servicios y a compartir sus recursos con la comunidad. Para ello, uno de los objetivos principales del proyecto CLOMMUNITY [3] es publicar una distribución GNU/Linux, llamada Cloudy, dirigida a los usuarios, para fomentar la transición y adopción del entorno Cloud en redes comunitarias (Community Network Cloud).


Motivación

La distribución Cloudy ha sido pensada para satisfacer los siguientes requisitos:

  1. Distribución: para potenciar la distribución de servicios en las redes comunitarias (CN; community networks) es necesaria una plataforma para publicar y descubrir estos servicios. De este modo, el acceso a los servicios no depende de despliegues estáticos de redes y la estructura es consciente de las condiciones dinámicamente cambiantes de las CN. El software elegido para la publicación y descubrimiento de servicios es Avahi[8].
  2. Descentralitzación: una capa de red común es necesaria para permitir a todos los nodos de la nube comunicarse entre ellos directamente. Una buena manera de construir esto es creando una "capa 2 de red virtual" basada en un servicio VPN[9]. Entre las opciones disponibles, se ha elegido Tinc VPN[10], ya que cumple todos los requisitos y es sencillo de configurar y administrar. Para coordinar los dispositivos con Tinc VPN, se ha desarrollado una herramienta para automatizar el despliegue del sistema. Este software, Getinconf[11], se encarga del proceso de configuración de Tinc VPN y del intercambio de claves con el resto de nodos de la nube.
  3. Facilidad de uso y experiencia de usuario: para este objetivo, se ha desarrollado una plataforma web de administración destinada a integrar la instalación y configuración de los servicios en la nube habilitados en la distribución Cloudy. Una interfaz web simple y agradable [12] está disponible para los usuarios como solución fácil de configuración, administración y monitorización de los servicios cloud activos en el nodo.
  4. Software libre: la distribución está basada en Debian GNU/Linux[2]. A parte de ser una de les distribuciones más populars y cumplir con los requisitos técnicos, ha sido elegida ya que el Debian Social Contract[13] salvaguarda y garantiza que el software será siempre abierto y libre.


Requisitos mínimos

Al ser una sistema basado en Debian, tiene los mismos requisitos de hardware.[14]

La imagen del sistema Cloudy trae una serie de configuraciones y paquetes adicionales; por lo que hace que sean necesarios alrededor de 450 MiB de espacio de almacenamiento.

De todos modos, es recomendable contar con al menos 1 GiB.


Si se quiere utilizar algunos servicios como PeerStreamer (leer más abajo) los requisitos mínimos aumentarán, tanto de espacio como de memoria y procesamiento.


Conseguir Cloudy

Actualmente puedes obtener la distribución Cloudy mediante la descarga de una imagen ISO para grabar en un CD o memoria USB, o de un template para ejecutar directamente en una máquina virtual (contenedor LXC[15] o OpenVZ[16]).

Alternativamente puedes bajar el codigo y compilarlo tú mismo.


Descarga la imagen

Ves a la página de Cloudy donde están las imagenes almacenadas:

http://repo.clommunity-project.eu/images/

Actualmente aun está en desarrollo y por tanto sólo está disponible la rama unstable.

Ahí encontrarás:

  • cloudy.README - Relación de paquetes adicionales incluidos en la imagen del sistema.
  • cloudy.container.tar.gz - Template para crear una VM.
  • cloudy.iso - Imatge ISO

Grabar la imagen ISO (Linux)

Los archivos ISO son live install CD images, es decir, tienen un sistema de instalación que se ejecuta justo al iniciar la máquina desde el dispositivo (CD/DVD/USB).

Puedes grabarlo en:

  • En un CD o DVD:
$ apt-get install xorriso
$ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed cloudy.iso
  • En una memoria USB:
$ dd if=cloudy.iso of=${USBSTICK}


Compilar

Para construir o compilar Cloudy se necesitan algunos programas en la máquina para poder descargar el código fuente, generar los binarios, manipular las imágenes ISO, etc.

1. Descargar los paquetes necesarios (ejemple con la herramienta apt de los sistemas basados en Debian):

sudo apt-get install build-essential live-build imagemagick curl debootstrap git unzip 

2. Descargar el "constructor" LBmake (Live-Build Make) para crear la imagen:

git clone https://github.com/Clommunity/lbmake

3. Compilar y generar la imagen ISO (y el Linux Container):

  • Ir al directorio donde se ha bajado el código de LBmake y compilar utilizando la herramienta de Linux make:
cd lbmake
sudo make

4. Una vez generada la imagen puedes probarla virtualizando el sistema con QEMU.[17]

  • Generar una imagen de disco y utilizar la imagen ISO como Live CD para la instalación:
qemu-img create -f qcow2 disk.qcow2 4G
qemu-system-i386 -enable-kvm -cdrom devel/binary.hybrid.iso -hda disk.qcow2

NOTA: si tienes una máquina relativamente reciente, añadiendo la opción '-enable-kvm' se aprovecha la virtualitzación por hardware, con lo que aumentará la rápidez/fluidez.

Linux container

Opcionalmente, a parte de la imagen ISO se puede crear un Linux Container con el siguiente comando:

sudo make container

NOTA: antes de generar el contenedor (linux container) primero se tiene que haber creado la imagen ISO. En caso de que no fuera así, el comando anterior generará primero la ISO y después el contenedor.


Instalación

Como se explica en la introducción, la distribución Cloudy está basada en Debian GNU/Linux y contenida en una imagen ISO live.

Puedes probar a arrancar el sistema desde el dispositivo externo (CD/DVD/USB), o bien iniciar el proceso de instalación, seleccionando la opción corresponendiente en el menú.

Cloudy-boot-install.png

La instalación es igual que con un Debian estándar [18], y los pasos se pueden resumir en:

  1. Escoger la opción Install en el menú de inicio. (min 0:06)
  2. Seleccionar el idioma por defecto de la instalación y del sistema. (min 0:12)
  3. Seleccionar tu ubicación. (min 0:16)
  4. Seleccionar el mapa de teclado. (min 0:19)
  5. Cambiar/asignar el nombre del sistema. (min 1:21)
  6. Añadir la contraseña de root. (min 1:37)
  7. Crear una nueva cuenta de usuario con contraseña. (min 1:45)
  8. Particionar el disco. En el ejemplo se ha utilizado todo el disco con una sola partición. (min 2:02)
  9. Configurar el gestor de paquetes, añadiendo una réplica del repositorio de Debian más próximo. (min 3:10)
  10. Instalar el cargador (boot loader) GRUB en el registro maestro de arranque del disco (master boot record). (min 4:34)
  11. Finalizar la instalación para reiniciar la máquina e iniciar el nuevo sistema. (min 4:43)

NOTA: las referencias en paréntesis corresponden al momento aproximado en el ejemplo en video [19] del proceso de instalación.


Cómo actualizar

El sistema de actualización permite comprobar y actualizar los paquetes propios de Cloudy para no tener que reinstalar el sistema ni perder los datos.

En la versión actual, en el menú System > Update, se puede comprobar si hay una versión nueva de los paquetes de Cloudy y actualizarlos uno a uno. También está la opción para hacer un upgrade general del sistema (paquetes de Debian).

Cloudy-update.png


Primeros pasos

Para acceder al sistema de configuración se hace mediante un navegador web entrando en la dirección de la máquina servidor en el puerto 7000.

http://DIRECCIÓN_IP:7000

Credenciales:

  • Usuario: root
  • Contraseña: root (por defecto en el container, y seleccionada durante la instalación con la imagen ISO)
Cloudy-home.png


Una vez dentro podemos ver la página inicial con información general del sistema y un menú superior con diferentes secciones, dividido en dos partes.

1. A la izquierda tenemos las opciones de configuración y monitorización del sistema.

  • Cloudy: página de inicio.
  • System: actualizaciones, configuración de usuario, desconexión.
  • Languages: selecció de l'idioma.


2. A la derecha tenemos las opciones de configuración y gestión de los servicios.

  • Search: herramientas para anunciar y buscar servicios en la red. Permite utilizar diferentes programas para ello.
  • Clommunity: servicios introducidos en el proyecto CLOMMUNITY.
  • Guifi.net: servicios habitualmente utilizados en la red de Guifi.net.


Servicios

A continuación podéis ver qué servicios hay acutalmente disponibles en Cloudy para ser configurados fácilmente a través de la interfaz web.

"Por hacer: explicación de cada uno de los servicios (puede verse en inglés en la página de Cloudy [20]"


Clommunity

  • Getinconf (gestión del cliente TincVPN)
  • OpenVZ Web Panel (gestión de máquinas virtuales)
  • Peer Streamer (streaming distribuido)
  • Syncthing (sincronización de archivos en red)
  • Tahofe-LAFS (sistema de ficheros distribuido)
  • Webdav server

Guifi

  • Proxy3 (proxy web)
Cloudy-guifi-proxy.png
  • SNPServices (monitorización/gráficas)
Cloudy-guifi-snpservices.png
  • DNSServices (DNS)
Cloudy-guifi-dnsservices.png


Referencias

  1. Cloudy: http://wiki.clommunity-project.eu/soft:cloudservices
  2. 2,0 2,1 Debian GNU/Linux: http://debian.org
  3. 3,0 3,1 CLOMMUNITY project: http://clommunity-project.eu
  4. 4,0 4,1 Guinux: http://guifi.net/node/29320
  5. 5,0 5,1 Cloud computing: http://es.wikipedia.org/wiki/Computaci%C3%B3n_en_la_nube
  6. 6,0 6,1 Redes comunitarias: http://es.wikipedia.org/wiki/Comunidad_inal%C3%A1mbrica
  7. http://es.wikipedia.org/wiki/Script
  8. Avahi: http://avahi.org
  9. Red Privada Virtual: http://es.wikipedia.org/wiki/Red_privada_virtual
  10. Tinc VPN: http://tinc-vpn.org
  11. Getinconf: https://github.com/Clommunity/getinconf/blob/master/README.md
  12. Interfaz web de Cloudy: http://redmine.confine-project.eu/projects/getinconf
  13. Debian social contract: https://www.debian.org/social_contract
  14. Requisitos mínimos: https://www.debian.org/releases/stable/i386/ch03s04.html.es
  15. Linux containers (LXC): https://linuxcontainers.org/
  16. http://openvz.org
  17. QEMU processor emulator: http://wiki.qemu.org/Main_Page
  18. Debian installation procedure: http://www.debian.org/releases/stable/i386/
  19. Cloudy installation: http://videos.guifi.net/guifimedia/2014-05%20Cloudy,%20the%20community%20distro/cloudy-installation.mp4
  20. Cloudy contents: http://cloudy.community/features/


Enllaces externos


Categoria:Cloudy

Herramientas personales