Difference between revisions of "Deployment Platform/Sneakernet"

From Sugar Labs
Jump to navigation Jump to search
 
(21 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.
  
== Recipes ==
+
<big>'''Targeting environment'''</big>
  
A list of scenarios to follow in the field.
+
The standard targeting environment, final environment might be similar, assumes:
  
=== Clone Master ===
+
* 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]].
  
On a box with Internet available, plug Synchronization media. Its mount point will be referred as {{Code|MOUNTPOINT}} in text below.
+
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].
  
If {{Code|sugar-network}} package is installed, run the following command:
+
== Teacher's XO ==
  
sugar-network-sync MOUNTPOINT http://api-testing.network.sugarlabs.org/
+
=== Sugar Network volume ===
  
Otherwise,
+
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.
  
* using any regular Web downloader, e.g., {{Code|wget}} or {{Code|curl}}, fetch clone data using http://api-testing.network.sugarlabs.org/?cmd=pull url (the first try might return empty file, in that case, retry in a minute);
+
To make removable media capable to store Sugar Network data:
  
* place fetched data to {{Code|MOUNTPOINT}} with to a file with {{Code|.packet}} suffix;
+
* Create {{Code|sugar-network}} directory in the root.
  
* create empty file in {{Code|MOUNTPOINT}} named as {{Code|.sugar-network-sync}}.
+
In order to make XO server capable:
  
=== Run Node server on Sugar box ===
+
* 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):
  
This mode is useful when there is no dedicated hardware for school server. In that case, particular XO laptop might be a Node server, e.g., one that teacher has.
+
[client]
 +
server-mode = True
  
* Prepare Database media. Place the following files to the root of removable device that is intended to be a Database media:
+
* Initiate Ad-Hoc wireless session from the Neighborhood View in the Sugar Shell to let students connect to Sugar Network server;
** {{Code|.sugar-network}} file;
 
** {{Code|master}} file with {{Code|api-testing.network.sugarlabs.org}} content, will be Master's GUID;
 
** {{Code|node}} file with arbitrary string content, will be Node's GUID.
 
  
* On a box that is intended to be a Node server; in ''Sweets Distribution'' Control Panel section, enable ''Behave as a Sugar Network server..'' checkbox (will require restarting Sugar Shell).
+
* Plug prepared Sugar Network volume.
  
* Plug prepared Database media.
+
=== Synchronization ===
  
* Plug Synchronization media with [[#Clone Master|initial data]].
+
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.
  
In current implementation, the initial process on Node side will take some time (30min on XO-1.5 laptop) to merge synchronization data.
+
To make removable volume capable to handle synchronization files:
  
=== Run clients ===
+
* Create {{Code|sugar-network-sync}} directory in the root.
  
* Make sure that Node server and all clients are in the same local network, e.g., wireless Ad-hoc.
+
The synchronization workflow looks like:
  
* Client Sugar boxes should enable ''Auto discover server in local network'' radio-box in ''Sweets Distribution'' Control Panel section.
+
# 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.
  
* Client should see Node content as a ''Network'' content.
+
== Students' XO ==
  
Current implementation is fragile in case of detecting local Node server, if Node content is not available on client side, try to restart Sugar.
+
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):
  
=== Synchronize Node on Sugar box ===
+
[client]
 +
discover-server = True
  
On a Node box,
+
Then, connect to wireless Ad-Hoc, and, in some time, F8 view will expose teacher's Sugar Network content.
  
* plug Synchronization media to let Node read input and write output Synchronization packets;
+
== Getting involved ==
* wait until Sugar Shell will alert with ''Synchronization complete..'' message;
 
* unplug Synchronization media.
 
  
On a box that has Internet available,
+
{{:Deployment_Platform/Feedback}}
 
 
* plug Synchronization media;
 
* run {{Code|sugar-network-sync}} script (placed by Node while synchronizing) from its root and wait until it will finish uploading and downloading Synchronization packet files;
 
* then, repeat Node box steps.
 

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).