Què és Cloudy

De Guifi.net - Wiki Català

Clommunity-logo.png
Logo guifi.svg

Cloudy [1] és una distribució basada en Debian GNU/Linux [2] desenvolupada en el marc del projecte CLOMMUNITY.[3]

Aquesta distribució, inspirada en la idea de l'antiga Guinux [4], facilita el desplegament i la gestió de serveis de xarxa en el núvol (cloud services)[5], així com la compartició d'aquests. Pensada en particular pels usuaris de les xarxes comunitàries.[6]




Introducció

Abans de l'adopció general de serveis en el núvol (cloud services)[5] els usuaris de Xarxes Comunitàries [6] ja compartien o proveïen serveis i recursos a la comunitat; no obstant, aquest usuaris eren una minoria. Una de les principals raons és la barrera tecnològica. Abans de proveir continguts, els usuaris que volen compartir informació amb la comunitat tenen primer que preocupar-se dels aspectes tècnics com el desplegament/muntatge d'un servidor amb un conjunt de serveis.

En el passat, els usuaris de Guifi.net, intentaren superar aquest problema publicant una distribució GNU/Linux anomenada Guinux [4], que donava als usuaris finals una solució fàcil per oferir serveis a la comunitat (com ara proxy web, sistemes DNS, monitoratge i gràfiques).

La clau principal de Guinux era un conjunt de scripts[7] que automatitzaven el procés de configuració. Els usuaris només havien d'introduir uns pocs paràmetres com l'adreça de correu electrònic i l'identificador del node. Aviat, després d'estar disponible la distribució, el nombre d'usuaris compartint recursos va proliferar.

D'acord amb això, va quedar clar que reduint (o eliminant) la barrera d'entrada tecnològica animava als usuaris a proveir de més serveis i compartir els seus recursos amb la comunitat. Per a tal fi, un dels objectius principals del projecte CLOMMUNITY [3] és publicar una distribució GNU/Linux, anomenada Cloudy, dirigida als usuaris, per a fomentar la transició i adopció de l'entorn Cloud a xarxes comunitàries (Community Network Cloud).


Motivació

La distribució Cloudy s'ha pensat per satisfer els següents requisits:

  1. Distribució: per a potenciar la distribució de serveis a les xarxes comunitàries (XC); és necessària una plataforma per a publicar i descobrir aquests serveis. D'aquesta manera, l'accés als serveis no depèn de desplegaments estàtics de xarxes i és conscient de les condicions dinàmicament canviants de les XC. El programari escollit per a la publicació i descobriment de serveis és Avahi[8].
  2. Descentralització: una capa de xarxa comuna és necessària per permetre a tots els nodes del núvol comunicar-se entre ells directament. Una bona manera de construir això es crear una "capa 2 virtual" basada en un servei VPN[9]. Entre les opcions disponibles, ha estat escollit Tinc VPN[10], ja que compleix tots els requisits i és senzill de configurar i administrar. Per a coordinar els dispositius amb Tinc VPN, s'ha desenvolupat una eina per automatitzar el desplegament del sistema. Aquest software, Getinconf[11], s'encarrega del procés de configuració de Tinc VPN i de l'intercanvi de claus amb la resta de nodes del núvol.
  3. Facilitat d'ús i experiència d'usuari: per a aquest fi, s'ha desenvolupat una plataforma web d'administració destinada a integrar la instal·lació i configuració dels serveis al núvol habilitats en la distribució Cloudy. Una interfície web simple i agradable[12] està disponible pels usuaris com a solució fàcil de configuració, administració i monitoratge dels serveis cloud actius al node.
  4. Programari lliure: la distribució està basada en Debian GNU/Linux[2]. Apart de ser una de les distribucions més populars i complir tots els requisits tècnics, ha estat escollida degut a que el Debian Social Contract[13] salvaguarda i garanteix que el programari serà sempre obert i lliure.


Requisits mínims

Al ser una sistema basat en Debian, té el mateixos requisits de hardware.[14]

La imatge del sistema Cloudy porta una sèrie de configuracions i paquets addicionals; per la qual cosa fa que siguin necessaris al voltant de 450 MiB de espai d'emmagatzematge.

Tot i això, és recomenable comptar amb al menys 1 GiB.


Si és volen fer servir alguns serveis com PeerStreamer (llegir més avall) els requisits mínims augmentaran, tant d'espai com de memòria i processament.


Aconseguir Cloudy

Actualment pots obtenir la distribució Cloudy mitjançant la descarrega d'una imatge ISO per gravar en un CD o memòria USB, o d'un template per executar directament a una màquina virtual (contenidor LXC[15] o OpenVZ[16]).

Alternativament pots baixar-te el codi i compilar-ho tu mateix.


Descarrega la imatge

Ves a la pàgina de Cloudy on estan les imatges emmagatzemades:

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

Actualment encara està en desenvolupament i disponible només a la branca unstable.

Allà trobaràs:

  • cloudy.README - Relació de paquets addicionals inclosos a la imatge del sistema.
  • cloudy.container.tar.gz - Template per a crear una VM.
  • cloudy.iso - Imatge ISO

Grabar la imatge ISO (Linux)

Els fitxers ISO són live install CD images, és a dir, tenen un sistema d'instal·lació que s'executa just al iniciar la màquina des del dispositiu (CD/DVD/USB).

Pots gravar-ho:

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


Compilar

Per a construir o compilar Cloudy es necessiten alguns programes a la màquina per tal de poder descarregar les fonts, generar els binaris, manipular les images ISO, etc.

1. Descarregar els paquets necessaris (exemple amb el apt dels sistemes basats en Debian):

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

2. Descarregar el "constructor" LBmake (Live-Build Make) per crear la imatge:

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

3. Compilar i generar la imatge ISO (i el Linux Container):

  • Anar al directori on s'ha baixat el codi del LBmake i compilar utilitzant l'eina de Linux make:
cd lbmake
sudo make

4. Un cop generada la imatge pots provar-la virtualitzant el sistema amb QEMU.[17]

  • Generar una imatge de disc i utilitzar la imatge ISO com a Live CD per a la instal·lació:
qemu-img create -f qcow2 disk.qcow2 4G
qemu-system-i386 -enable-kvm -cdrom devel/binary.hybrid.iso -hda disk.qcow2

NOTA: si tens una màquina relativament recent, afegint l'opció '-enable-kvm' aprofita la virtualització per hardware fent-ho més ràpid.

Linux container

Opcionalment, apart de la imatge ISO es pot crear un Linux Container amb la següent comanda:

sudo make container

NOTA: abans de generar el contenidor primer s'ha d'haver creat la imatge ISO. En cas que no fos així, la comanda anterior generarà primer la ISO i després el contenidor.

Instal·lació

Com s'explica a la introducció, la distribució Cloudy està basada en Debian GNU/Linux i continguda en una imatge ISO live.

Pots provar a arrencar el sistema des del dispositiu extern (CD/DVD/USB) o bé iniciar el procés d'instal·lació, seleccionant la opció corresponent al menú.

Cloudy-boot-install.png

La instal·lació és igual que amb un Debian estàndard [18], i els passos es poden resumir en:

  1. Escollir la opció Install en el menú d'inici. (min 0:06)
  2. Seleccionar l'idioma per defecte de la instal·lacció i del sistema. (min 0:12)
  3. Seleccionar la teva ubicació. (min 0:16)
  4. Seleccionar el mapa de teclat. (min 0:19)
  5. Canviar/assignar el nom del sistema. (min 1:21)
  6. Afegir la contrasenya de root. (min 1:37)
  7. Crear un nou compte d'usuari amb contrasenya. (min 1:45)
  8. Particionar el disc. En el exemple s'ha utilitzat tot el disc amb una sola partició. (min 2:02)
  9. Configurar el gestor de paquets, afegint una rèplica de l'arxiu (repositori) de Debian més proper. (min 3:10)
  10. Instal·lar carregador (boot loader) GRUB al registre mestre d'arrencada del disc (master boot record). (min 4:34)
  11. Finalitzar la instal·lació per reiniciar la màquina i iniciar el nou sistema. (min 4:43)

NOTA: les referències en parèntesi corresponen al moment aproximat en el exemple en vídeo [19] del procés d'instal·lació.


Com actualitzar

El sistema d'actualització permet comprovar i actualitzar els paquets propis de Cloudy per tal de no haver de reinstal·lar el sistema ni perdre cap dada.

En la versió actual, anant al menú System > Update, es pot comprovar si hi ha una versió nova dels paquets de Cloudy i actualitzar-los un a un. També permet fer un upgrade general del sistema (paquets de Debian).

Cloudy-update.png


Primers passos

Per accedir al sistema de configuració es fa mitjançant un navegador web a l'adreça de la màquina servidor i port 7000.

http://ADREÇA_IP:7000

Credencials:

  • Usuari: root
  • Contrasenya: root (per defecte al container, seleccionada a l'instal·lació)
Cloudy-home.png


Un cop dins podem veure la pàgina inicial amb informació general del sistema i un menú superior amb diferents seccions, dividit en dues parts.

1. A l'esquerra tenim les opcions de configuració i monitoratge del sistema.

  • Cloudy: pàgina d'inici.
  • System: configuració de l'usuari, actualitzacions, desconnexió.
  • Languages: selecció de l'idioma.


2. A la dreta tenim les opcions de configuració i gestió dels serveis.

  • Search: eines per anunciar i cercar serveis en la xarxa. Permet utilitzar diferents programes per a aquest propòsit.
  • Clommunity: serveis introduïts al projecte CLOMMUNITY.
  • Guifi.net: serveis habituals utilitzats a la xarxa de Guifi.net.


Serveis

A continuació podeu veure quins serveis hi ha actualment disponibles a Cloudy per ser configurats fàcilment a través de l'interfície web.

"Per fer: explicació de cadascun dels serveis (es pot veure en anglès a la pàgina web de Cloudy [20])"


Clommunity

  • Getinconf (gestió del client TincVPN)
  • OpenVZ Web Panel (gestió de màquines virtuals)
  • Peer Streamer (streaming distribuït)
  • Syncthing (sincronització de fitxers en xarxa)
  • Tahofe-LAFS (sistema de fitxers distribuït)
  • Webdav server

Guifi

  • Proxy3 (web proxy)
Cloudy-guifi-proxy.png
  • SNPServices (monitoratge/gràfiques)
Cloudy-guifi-snpservices.png
  • DNSServices (DNS)
Cloudy-guifi-dnsservices.png


Referències

  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://ca.wikipedia.org/wiki/Inform%C3%A0tica_en_n%C3%BAvol
  6. 6,0 6,1 Xarxes comunitàries: http://ca.wikipedia.org/wiki/Xarxa_oberta
  7. http://ca.wikipedia.org/wiki/Script_%28inform%C3%A0tica%29
  8. Avahi: http://avahi.org
  9. Xarxa Privada Virtual: http://ca.wikipedia.org/wiki/Xarxa_privada_virtual
  10. Tinc VPN: http://tinc-vpn.org
  11. Getinconf: https://github.com/Clommunity/getinconf/blob/master/README.md
  12. Interfície web de Cloudy: http://redmine.confine-project.eu/projects/getinconf
  13. Debian social contract: https://www.debian.org/social_contract
  14. Requisits mínims: https://www.debian.org/releases/stable/i386/ch03s04.html.ca
  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/@cloudy/Cloudy%20installation.mp4
  20. Cloudy contents: http://cloudy.community/features/


Enllaços externs

Eines de l'usuari