Difference between revisions of "What is Cloudy"

From Guifi - Media-pool Common Repository

(Created page with "100px 100px Cloudy <ref name="cloudy">Cloudy: http://wiki.clommunity-project.eu/soft:cloudservices</ref> is a...")
 
m (2 revisions: Importing all articles from english wiki)
 
(One intermediate revision by one user not shown)
Line 29: Line 29:
  
 
# '''Distribution''': in order to foster services distribution amongst the Community Networks (CNs), a platform to publish and discover them is required. This way, service access does not depend on static networking deployments and is aware of the dynamically-changing conditions of CNs. The software chosen for service publishing and discovering is Avahi<ref name="avahi">Avahi: http://avahi.org</ref>.
 
# '''Distribution''': in order to foster services distribution amongst the Community Networks (CNs), a platform to publish and discover them is required. This way, service access does not depend on static networking deployments and is aware of the dynamically-changing conditions of CNs. The software chosen for service publishing and discovering is Avahi<ref name="avahi">Avahi: http://avahi.org</ref>.
# '''Decentralisation''': a common network layer is required to allow all CN cloud nodes to communicate with each other directly. A good way to build it is to create a virtual Layer 2 based on a VPN<ref>Virtual Private Network: http://en.wikipedia.org/wiki/Virtual_private_network</ref> service. Among the available options, Tinc VPN<ref>Tinc VPN: http://tinc-vpn.org</ref> has been chosen, as it fulfills all the requirements while being easy to configure and manage.
+
# '''Decentralisation''': a common network layer is required to allow all CN cloud nodes to communicate with each other directly. A good way to build it is to create a virtual Layer 2 based on a VPN<ref>Virtual Private Network: http://en.wikipedia.org/wiki/Virtual_private_network</ref> service. Among the available options, Tinc VPN<ref>Tinc VPN: http://tinc-vpn.org</ref> has been chosen, as it fulfills all the requirements while being easy to configure and manage. To coordinate the devices with TincVPN, a tool to automate the system deployment has been developed as part of the project. This software, named Getinconf<ref>Getinconf: https://github.com/Clommunity/getinconf/blob/master/README.md</ref>, takes care of the TincVPN configuration process and the exchange of keys with the rest of the cloud nodes.
To coordinate the devices with TincVPN, a tool to automate the system deployment has been developed as part of the project. This software, named Getinconf<ref>Getinconf: https://github.com/Clommunity/getinconf/blob/master/README.md</ref>, takes care of the TincVPN configuration process and the exchange of keys with the rest of the cloud nodes.
+
 
# '''User-friendliness''': to this end, a web-based management platform has been developed aimed to integrate all the installation and configuration steps for the cloud services enabled in the Cloudy distribution. A simple web interface<ref>Cloudy web interface: http://redmine.confine-project.eu/projects/getinconf</ref> is available to the end user as an easy way of configure, administer and monitor the cloud services running in the node.
 
# '''User-friendliness''': to this end, a web-based management platform has been developed aimed to integrate all the installation and configuration steps for the cloud services enabled in the Cloudy distribution. A simple web interface<ref>Cloudy web interface: http://redmine.confine-project.eu/projects/getinconf</ref> is available to the end user as an easy way of configure, administer and monitor the cloud services running in the node.
 
# '''Free, Libre, Open Source Software''': the distribution has been based on Debian GNU/Linux<ref name="debian"/>. Apart from being one of the most popular distributions and fulfilling all the technical requirements, it has been chosen because the Debian Social Contract<ref>Debian social contract: https://www.debian.org/social_contract</ref> safeguards and guarantees that the software will always be open and free.
 
# '''Free, Libre, Open Source Software''': the distribution has been based on Debian GNU/Linux<ref name="debian"/>. Apart from being one of the most popular distributions and fulfilling all the technical requirements, it has been chosen because the Debian Social Contract<ref>Debian social contract: https://www.debian.org/social_contract</ref> safeguards and guarantees that the software will always be open and free.
  
 +
[[File:Cloudy-home.png]]
  
  
== Minimum requirements ==
 
  
As Cloudy is based in Debian, it has the same hardware requirements.<ref>Minimum requirements: https://www.debian.org/releases/stable/i386/ch03s04.html.en</ref>
+
== Getting started ==
  
The binary image have a set of configurations and additional packages; thus are needed arround '''450 MiB of free storage space'''.
+
Enter to the "Get started" section in the Cloudy website <ref name="start">http://cloudy.community/get_started/</ref> to know all you need to start with Cloudy.
Anyway, it is '''recommended''' to have '''at least 1 GiB'''.
+
 
+
If you want to use some services like PeerStreamer (read below) the minimum requirements will increase, both storage, memory and processing.
+
 
+
 
+
 
+
== Getting Cloudy ==
+
 
+
Actually you can obtain the Cloudy distribution by downloading an ISO image ready to burn in a CD or USB memory, or by downloading a template (LXC container<ref>Linux containers (LXC): https://linuxcontainers.org/</ref> or OpenVZ<ref>http://openvz.org</ref>) ready to be executed in a virtual machine.
+
 
+
Alternatively you can download the source code and compile it by your own.
+
 
+
 
+
=== Downloading the image ===
+
 
+
Go to the Cloudy site where image are stored:
+
 
+
http://repo.clommunity-project.eu/images/
+
 
+
Currently is in development and is '''only available the ''unstable'' branch'''.
+
  
 
There you will find:
 
There you will find:
 
+
* Requirements
* cloudy.README - List of additional packages included in the image.
+
* Get/compile
* cloudy.container.tar.gz - Container template.
+
* Install
* cloudy.iso - ISO image
+
* Update
 
+
* First steps
==== Burn the ISO image (Linux) ====
+
 
+
The ISO file is a live install CD image, it means that it has installation system which is executed from a removable device (CD/DVD/USB) at boot.
+
 
+
You can burn it in:
+
 
+
* A CD or DVD:
+
 
+
$ apt-get install xorriso
+
$ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed cloudy.iso
+
 
+
* A USB memory:
+
 
+
$ dd if=cloudy.iso of=${USBSTICK}
+
 
+
 
+
=== Compiling ===
+
 
+
In order to build or compile Cloudy some programs are needed in your machine to download the sources, generate the binaries, manipulate the ISO images, etc.
+
 
+
1. Download the needed packages (example with the ''apt'' tool in the Debian based systems):
+
sudo apt-get install build-essential live-build imagemagick curl debootstrap git unzip
+
 
+
2. Download the "builder" ''LBmake'' (Live-Build Make) to create the image:
+
git clone https://github.com/Clommunity/lbmake
+
 
+
3. Compile and generate the ISO image (and the Linux container):
+
 
+
* Go to the directory where you have downloaded the source of ''LBmake'' and compile it using the ''make'' tool:
+
cd lbmake
+
sudo make
+
 
+
4. Once the image is generated you can test it virtualizing the system with QEMU.<ref>QEMU processor emulator: http://wiki.qemu.org/Main_Page</ref>
+
 
+
* Generate a disk image and use the ISO image as a live CD for the installation:
+
qemu-img create -f qcow2 disk.qcow2 4G
+
qemu-system-i386 -enable-kvm -cdrom devel/binary.hybrid.iso -hda disk.qcow2
+
 
+
''NOTE: if you have a relatively recent machine, adding the option '-enable-kvm' you will take profit from the hardware virtualization, it will increase the speed and performance.''
+
 
+
==== Linux container ====
+
 
+
Optionally, from the ISO image you can create a Linux container with the following command:
+
sudo make container
+
 
+
''NOTE: before generating the container you have to create the ISO image first. If not, the previous command will generate firstly the ISO and after the container.''
+
  
  
  
== Installation ==
+
== Contents ==
  
As it is explained in the introduction, the Cloudy distribution is based in Debian GNU/Linux and made in a live ISO image.
+
In the "Features" section <ref name="features">http://cloudy.community/features/</ref> you can see all the contents/software included in the distribution. Specifically is detailed the software that can be easily managed through the web interface.
  
You can boot the system from the external device (CD/DVD/USB), or start the installation process by selecting the corresponding option from the menu.
+
This software is integrated by a ''plug-ins'' system. You can read more in the wiki page of [[Cloudy_plug-ins|Cloudy plug-ins]].
  
[[File:cloudy-boot-install.png|center]]
 
  
The installation is the same as a standard Debian<ref>Debian installation procedure: http://www.debian.org/releases/stable/i386/</ref>, and the steps can be sumarize in:
 
  
 +
== Contributing ==
  
=== Services ===
+
To stay up to date or to know how to collaborate and get involved with Cloudy, enter to the "Contribute" in the website.<ref name="contribuir">http://cloudy.community/contribute/</ref>
  
Below you can see what processes are currently available in Cloudy to be configured easily through the web interface.
 
  
''"NOTE: each service is explained in the Cloudy website<ref>Cloudy contents: http://cloudy.community/features/</ref>"''
+
Remember that the mailing lists are in English because there are participants from different countries.
  
 +
If you want to write in Catalan or in Spanish you should add [CAT] or [ES] respectively in the subject of the mail message.
  
==== Clommunity ====
 
* Getinconf (TincVPN client management)
 
* OpenVZ Web Panel (virtual machines management)
 
* Peer Streamer (distributed streaming)
 
* Syncthing (network file synchronization)
 
* Tahofe-LAFS (distributed file system)
 
* Webdav server
 
  
==== Guifi ====
 
* Proxy3 (web proxy)
 
[[File:cloudy-guifi-proxy.png|center]]
 
  
* SNPServices (monitoring/graphs)
+
== More information ==
[[File:cloudy-guifi-snpservices.png|center]]
+
  
* DNSServices (DNS)
+
You can read more in the wiki page of the [[Cloudy|Cloudy category]].
[[File:cloudy-guifi-dnsservices.png|center]]
+
  
  

Latest revision as of 23:58, 22 July 2015

Clommunity-logo.png
Logo guifi.svg

Cloudy [1] is a distribution based in Debian GNU/Linux [2] developed under the CLOMMUNITY european research project.[3]

This distribution, inspired in the idea of the old Guinux [4], facilitates the deployment and the management of cloud services[5], as well as sharing them. Particulary intended to the community network[6] users.




Introduction

Prior to the general adoption of cloud services[5], users of Community Networks (CNs[6]) already shared or provided services and resources to the community, however, these users were only a minority. One of the reasons identified is the technological barrier. Before providing content, users willing to share information with the community have first to take care of the technical aspects such as the deployment of a server with a set of services.

In the past, users from the Guifi.net CN tried to overcome this problem by releasing a GNU/Linux distribution named Guinux [4], which provided end users an easy way of offering network services to the community (like HTTP proxy, DNS systems and MRTG graphic interfaces).

The key part of the distribution was a set of scripts[7] that automatised the configuration process. End users were only asked for a few parameters such as their e-mail address and the node identifier. Shortly after the distribution was made available the number of end users sharing resources proliferated.

According to that, it became clear that lowering (or removing) the technological entry barrier encouraged users to provide more services and share their resources with the community. To this end, one of the goals of the CLOMMUNITY [3] project is to release a GNU/Linux distribution, codenamed Cloudy, aimed at end users, to foster the transition and adoption of the Community Network cloud environment.


Motivation

The Cloudy distributión is thought to satisfy the following requirements:

  1. Distribution: in order to foster services distribution amongst the Community Networks (CNs), a platform to publish and discover them is required. This way, service access does not depend on static networking deployments and is aware of the dynamically-changing conditions of CNs. The software chosen for service publishing and discovering is Avahi[8].
  2. Decentralisation: a common network layer is required to allow all CN cloud nodes to communicate with each other directly. A good way to build it is to create a virtual Layer 2 based on a VPN[9] service. Among the available options, Tinc VPN[10] has been chosen, as it fulfills all the requirements while being easy to configure and manage. To coordinate the devices with TincVPN, a tool to automate the system deployment has been developed as part of the project. This software, named Getinconf[11], takes care of the TincVPN configuration process and the exchange of keys with the rest of the cloud nodes.
  3. User-friendliness: to this end, a web-based management platform has been developed aimed to integrate all the installation and configuration steps for the cloud services enabled in the Cloudy distribution. A simple web interface[12] is available to the end user as an easy way of configure, administer and monitor the cloud services running in the node.
  4. Free, Libre, Open Source Software: the distribution has been based on Debian GNU/Linux[2]. Apart from being one of the most popular distributions and fulfilling all the technical requirements, it has been chosen because the Debian Social Contract[13] safeguards and guarantees that the software will always be open and free.

Cloudy-home.png


Getting started

Enter to the "Get started" section in the Cloudy website [14] to know all you need to start with Cloudy.

There you will find:

  • Requirements
  • Get/compile
  • Install
  • Update
  • First steps


Contents

In the "Features" section [15] you can see all the contents/software included in the distribution. Specifically is detailed the software that can be easily managed through the web interface.

This software is integrated by a plug-ins system. You can read more in the wiki page of Cloudy plug-ins.


Contributing

To stay up to date or to know how to collaborate and get involved with Cloudy, enter to the "Contribute" in the website.[16]


Remember that the mailing lists are in English because there are participants from different countries.

If you want to write in Catalan or in Spanish you should add [CAT] or [ES] respectively in the subject of the mail message.


More information

You can read more in the wiki page of the Cloudy category.


References

  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://en.wikipedia.org/wiki/Cloud_computing
  6. 6.0 6.1 Community networks: http://en.wikipedia.org/wiki/Community_network
  7. http://en.wikipedia.org/wiki/Scripting_language
  8. Avahi: http://avahi.org
  9. Virtual Private Network: http://en.wikipedia.org/wiki/Virtual_private_network
  10. Tinc VPN: http://tinc-vpn.org
  11. Getinconf: https://github.com/Clommunity/getinconf/blob/master/README.md
  12. Cloudy web interface: http://redmine.confine-project.eu/projects/getinconf
  13. Debian social contract: https://www.debian.org/social_contract
  14. http://cloudy.community/get_started/
  15. http://cloudy.community/features/
  16. http://cloudy.community/contribute/


External links

Personal tools