Què és Cloudy
De Guifi.net - Wiki Català
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]
Contingut
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:
- 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].
- 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.
- 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.
- 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ú.
La instal·lació és igual que amb un Debian estàndard [18], i els passos es poden resumir en:
- Escollir la opció Install en el menú d'inici. (min 0:06)
- Seleccionar l'idioma per defecte de la instal·lacció i del sistema. (min 0:12)
- Seleccionar la teva ubicació. (min 0:16)
- Seleccionar el mapa de teclat. (min 0:19)
- Canviar/assignar el nom del sistema. (min 1:21)
- Afegir la contrasenya de root. (min 1:37)
- Crear un nou compte d'usuari amb contrasenya. (min 1:45)
- Particionar el disc. En el exemple s'ha utilitzat tot el disc amb una sola partició. (min 2:02)
- Configurar el gestor de paquets, afegint una rèplica de l'arxiu (repositori) de Debian més proper. (min 3:10)
- Instal·lar carregador (boot loader) GRUB al registre mestre d'arrencada del disc (master boot record). (min 4:34)
- 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).
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ó)
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)
- SNPServices (monitoratge/gràfiques)
- DNSServices (DNS)
Referències
- ↑ Cloudy: http://wiki.clommunity-project.eu/soft:cloudservices
- ↑ 2,0 2,1 Debian GNU/Linux: http://debian.org
- ↑ 3,0 3,1 CLOMMUNITY project: http://clommunity-project.eu
- ↑ 4,0 4,1 Guinux: http://guifi.net/node/29320
- ↑ 5,0 5,1 Cloud computing: http://ca.wikipedia.org/wiki/Inform%C3%A0tica_en_n%C3%BAvol
- ↑ 6,0 6,1 Xarxes comunitàries: http://ca.wikipedia.org/wiki/Xarxa_oberta
- ↑ http://ca.wikipedia.org/wiki/Script_%28inform%C3%A0tica%29
- ↑ Avahi: http://avahi.org
- ↑ Xarxa Privada Virtual: http://ca.wikipedia.org/wiki/Xarxa_privada_virtual
- ↑ Tinc VPN: http://tinc-vpn.org
- ↑ Getinconf: https://github.com/Clommunity/getinconf/blob/master/README.md
- ↑ Interfície web de Cloudy: http://redmine.confine-project.eu/projects/getinconf
- ↑ Debian social contract: https://www.debian.org/social_contract
- ↑ Requisits mínims: https://www.debian.org/releases/stable/i386/ch03s04.html.ca
- ↑ Linux containers (LXC): https://linuxcontainers.org/
- ↑ http://openvz.org
- ↑ QEMU processor emulator: http://wiki.qemu.org/Main_Page
- ↑ Debian installation procedure: http://www.debian.org/releases/stable/i386/
- ↑ Cloudy installation: http://videos.guifi.net/guifimedia/2014-05%20Cloudy,%20the%20community%20distro/cloudy-installation.mp4
- ↑ Cloudy contents: http://cloudy.community/features/