Difference between revisions of "Deployment Platform/Sneakernet"

From Sugar Labs
Jump to navigation Jump to search
 
(25 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Summary ==
+
== Background ==
  
This page is intended to describe the process of offline synchronization between Sugar Network servers. The synchronization process means making data changes, happened on servers, common for all of them.
+
This is [[Deployment_Platform/Deployment|one of possible]] deployment scenarios of [[Deployment_Platform]]. This page is intended to describe procedures for school servers and end users in [[#Targeting_environment|Internet-less]] environment. Using [[#Recipes|predefined recipes]], it should be possible to fully support such deployments.
  
== Objects ==
+
<big>'''Targeting environment'''</big>
  
What kind of objects involved to the process:
+
The standard targeting environment, final environment might be similar, assumes:
  
* '''Master server'''<br>Main Sugar Network server accessible via the Internet. Each Master server has public API url. This tutorial is using http://api-testing.network.sugarlabs.org to refer to testing Sugar Network Master launched on Sugar Labs server.
+
* Particular deployment, e.g., a school, without Internet access.
 +
* Lack of technical personal when in most cases only not IT skilled teachers have access to school servers.
 +
* Lack of dedicated hardware for school servers, server side software will be launched on teacher's XO laptop (XO-1.5 is preferred).
 +
* School server's client connected to school server XO using Ad-hoc wireless connection.
 +
* The only way to synchronize school servers with each other and with the master one, is a [[wikipedia:Sneakernet|sneakernet]].
  
* '''Node servers'''<br>Local Sugar Network servers that are intended to be distributed versions of the Master. This tutorial assumes that Nodes don't have direct connection to the Master, and the only one way to synchronize data is the [[wikipedia:Sneakernet|Sneakernet]].
+
The scenario assumes keeping Sugar Network node server launched on teacher's XO which provides Sugar Network access to students around. Teacher's and students' XO should be flashed with special Sugar with Sugar Network integration. It might be [[Deployment_Platform/XO_reference_distribution#Try_reference_implementation|one of reference images]] or final deployment ones like [http://pe.sugarlabs.org/go/Proyecto_Piloto_Hexoquinasa Hexoquinasa].
  
* '''Database media'''<br>Node servers might store database on removable devices (makes sense if Nodes are XO laptops), in that case, such devices should have a magic file, named {{Code|.sugar-network}}, in the root directory on removable device. Having this magic file will let Node's software auto detect recently plugged removable device as a Database media to start behaving correspondingly.
+
== Teacher's XO ==
  
* '''Synchronization media'''<br>Removable media device, e.g., USB stick or SD card that will be used to transfer Packets between servers. Synchronization media should have a magic file, named {{Code|.sugar-network-sync}}, in the root directory. Having this file will let Node's software start synchronization process automatically after plugging media.
+
=== Sugar Network volume ===
  
* '''Synchronization packets'''<br>Regular files that contain synchronization data placed to Synchronization media. Packet files are [[wikipedia:Tar_(file_format)|tarballs]] with {{Code|.packet}} file name suffix.
+
To make process of choosing server XO more flexible, entire Sugar Network node data should be stored on separate removable device, SD card of USB stick. Any XO can be turned into Sugar Network node by plugging such volume.
  
== Workflows ==
+
To make removable media capable to store Sugar Network data:
  
A list of scenarios to follow in the field.
+
* Create {{Code|sugar-network}} directory in the root.
  
=== Clone Master ===
+
In order to make XO server capable:
  
=== Synchronize Node ===
+
* Enable server mode checkbox in ''Sweets Distribution'' section in Sugar Control Panel, or, if this sections is disabled, populate {{Code|/etc/sweets.conf}} configuration file (it might be done on XO image creation stage):
 +
 
 +
[client]
 +
server-mode = True
 +
 
 +
* Initiate Ad-Hoc wireless session from the Neighborhood View in the Sugar Shell to let students connect to Sugar Network server;
 +
 
 +
* Plug prepared Sugar Network volume.
 +
 
 +
=== Synchronization ===
 +
 
 +
Note that newly prepared Sugar Network volume will be empty, initial content should be fetched from the master node. Due to offline nature of this scenario, synchronization will happen via [[wikipedia:Sneakernet|sneakernet]], i.e., using synchronization files placed to regular removable volumes, e.g., USB sticks.
 +
 
 +
To make removable volume capable to handle synchronization files:
 +
 
 +
* Create {{Code|sugar-network-sync}} directory in the root.
 +
 
 +
The synchronization workflow looks like:
 +
 
 +
# Plug prepared synchronization volume to server XO;
 +
# Wait for Sugar alert which says that synchronization is complete;
 +
# Unplug synchronization volume from server XO;
 +
# Plug synchronization volume to a machine which is connected to the Internet;
 +
# Run {{Code|sugar-network-sync}} shell script from synchronization volume (it will be created while synchronizing on server XO);
 +
# Wait until finishing script work, it will upload server XO files and download master server response;
 +
# Bring synchronization volume back to server XO and start from the 1st step.
 +
 
 +
== Students' XO ==
 +
 
 +
In order to point students' XO to the teacher's Sugar Network node, enable auto server discovering radio-box in the ''Sweets Distribution'' section in Sugar Control Panel, or, if this sections is disabled, populate {{Code|/etc/sweets.conf}} configuration file (it might be done on XO image creation stage):
 +
 
 +
[client]
 +
discover-server = True
 +
 
 +
Then, connect to wireless Ad-Hoc, and, in some time, F8 view will expose teacher's Sugar Network content.
 +
 
 +
== Getting involved ==
 +
 
 +
{{:Deployment_Platform/Feedback}}

Latest revision as of 02:21, 4 June 2013

Background

This is one of possible deployment scenarios of Deployment_Platform. This page is intended to describe procedures for school servers and end users in Internet-less environment. Using predefined recipes, it should be possible to fully support such deployments.

Targeting environment

The standard targeting environment, final environment might be similar, assumes:

  • Particular deployment, e.g., a school, without Internet access.
  • Lack of technical personal when in most cases only not IT skilled teachers have access to school servers.
  • Lack of dedicated hardware for school servers, server side software will be launched on teacher's XO laptop (XO-1.5 is preferred).
  • School server's client connected to school server XO using Ad-hoc wireless connection.
  • The only way to synchronize school servers with each other and with the master one, is a sneakernet.

The scenario assumes keeping Sugar Network node server launched on teacher's XO which provides Sugar Network access to students around. Teacher's and students' XO should be flashed with special Sugar with Sugar Network integration. It might be one of reference images or final deployment ones like Hexoquinasa.

Teacher's XO

Sugar Network volume

To make process of choosing server XO more flexible, entire Sugar Network node data should be stored on separate removable device, SD card of USB stick. Any XO can be turned into Sugar Network node by plugging such volume.

To make removable media capable to store Sugar Network data:

  • Create sugar-network directory in the root.

In order to make XO server capable:

  • Enable server mode checkbox in Sweets Distribution section in Sugar Control Panel, or, if this sections is disabled, populate /etc/sweets.conf configuration file (it might be done on XO image creation stage):
[client]
server-mode = True
  • Initiate Ad-Hoc wireless session from the Neighborhood View in the Sugar Shell to let students connect to Sugar Network server;
  • Plug prepared Sugar Network volume.

Synchronization

Note that newly prepared Sugar Network volume will be empty, initial content should be fetched from the master node. Due to offline nature of this scenario, synchronization will happen via sneakernet, i.e., using synchronization files placed to regular removable volumes, e.g., USB sticks.

To make removable volume capable to handle synchronization files:

  • Create sugar-network-sync directory in the root.

The synchronization workflow looks like:

  1. Plug prepared synchronization volume to server XO;
  2. Wait for Sugar alert which says that synchronization is complete;
  3. Unplug synchronization volume from server XO;
  4. Plug synchronization volume to a machine which is connected to the Internet;
  5. Run sugar-network-sync shell script from synchronization volume (it will be created while synchronizing on server XO);
  6. Wait until finishing script work, it will upload server XO files and download master server response;
  7. Bring synchronization volume back to server XO and start from the 1st step.

Students' XO

In order to point students' XO to the teacher's Sugar Network node, enable auto server discovering radio-box in the Sweets Distribution section in Sugar Control Panel, or, if this sections is disabled, populate /etc/sweets.conf configuration file (it might be done on XO image creation stage):

[client]
discover-server = True

Then, connect to wireless Ad-Hoc, and, in some time, F8 view will expose teacher's Sugar Network content.

Getting involved

  • Subscribe to the sugar-devel mailing list and email with the subject prefixed with [PLATFORM].
  • Ask your question on IRC channels, #sugar (not logged) or #sugar-newbies (logged).