Difference between revisions of "Deployment Platform/Deployment"

From Sugar Labs
Jump to navigation Jump to search
 
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Scenarios ==
+
#REDIRECT [[Deployment_Platform#Deployment_scenarios]]
 
 
The following list describes common deployment scenarios where [[Platform_Team/Harmonic_Distribution|Harmonic Distribution]] might be useful. The final model might be an intermediate variant of them.
 
 
 
=== Online peers ===
 
 
 
There is a [[#Dedicated_online_school_server|master server]] located in the Internet in highly accessible place for any maintaining work. The main task is supporting users that are connected to the server all time.
 
 
 
Possible options for deployment packages are:
 
 
 
* Attach proper [[#Repository|repository]] and install client sides packages. Client packages need to be preconfigured to connect to the Internet located server.
 
 
 
* The same but with special [[#XO image|XO image]] that is ready to work right after flashing a XO.
 
 
 
=== Dedicated online school server ===
 
 
 
A machine that has Internet connectivity and is intended to serve clients, e.g.,:
 
 
 
* [[Platform_Team/Harmonic_Distribution/Software#Software_Map|base software]] updates,
 
* [[Sugar Network]] content,
 
* collect usage statistics,
 
* provide OLPC's XO anti-thief support,
 
* backup functionality for client.
 
 
 
Server might be master (the main server) or node (replication of master). For nodes, the synchronization process with master will happen on regular basis using current Internet connection.
 
 
 
Possible options for deployment packages are:
 
 
 
* Attach proper [[#Repository|repository]] and install preconfigured server sides packages.
 
 
 
=== Dedicated offline school server ===
 
 
 
The same server as [[#Dedicated online school server|online]] one with a difference that it doesn't have Internet connection and needs to be synchronized using [[#Offline synchronization|sneakernet]].
 
 
 
Possible options for deployment packages are:
 
 
 
* Attach proper [[#Repository|repository]] and install preconfigured server sides packages.
 
 
 
=== Peer as a school server ===
 
 
 
The case when one of peers can play a role of either [[#Dedicated_online_school_server|online]] or [[#Dedicated_offline_school_server|offline]] school server.
 
 
 
Possible options for deployment packages are:
 
 
 
* Attach proper [[#Repository|repository]] and install client and server sides packages. Client packages need to be preconfigured to connect to the same peer as a server. Server packages need to be preconfigured for serve clients around using existing network interface, i.e., ethernet or wireless ad-hoc.
 
 
 
* The same but with special [[#XO image|XO image]] that is ready to work right after flashing a XO.
 
 
 
== Deployment packages ==
 
 
 
=== Repository ===
 
 
 
It might be either on of [[Sweets Distribution]] repositories or a repository derived from [[Sweets Distribution]] one and preconfigured.
 
 
 
=== XO image ===
 
 
 
Regular XO image created with including packages from proper [[#Repository|repository]].
 
 
 
== Synchronization ==
 
 
 
Only server need to be synchronized.
 
 
 
=== Online synchronization ===
 
 
 
=== Offline synchronization ===
 
 
 
The process is based on [[Wiki:Sneakernet|sneakernet]].
 
 
 
 
 
<!--
 
== Summary ==
 
 
 
This is a [[Dextrose]]-3 based distribution that is being targeted to
 
 
 
* Fedora-14 on XO-1 and XO-1.5 laptops, and
 
* Trisquel-4.1 LTS for regular hardware.
 
 
 
In both cases, [[#Build_packages|downstream packages]] are built on [https://packages.sugarlabs.org/ OBS] in [https://packages.sugarlabs.org/project/monitor?project=Hexokinase Hexokinase] project from the same [http://git.sugarlabs.org/hexokinase sources]. And composed to XO and Trisquel images.
 
 
 
== Build packages ==
 
 
 
This is about how to create downstream packages on OBS to include them later to resulting images.
 
 
 
=== Requirements ===
 
 
 
* Install [[Platform_Team/Guide/Sweets_Usage#Install|sweets]] utility<br>Will be used for uploading package sources to the [https://packages.sugarlabs.org/ OBS].
 
* Install [[Platform_Team/gatch|gatch]] utility<br>Will be used for re-basing package sources to pull recent upstream changes.
 
* Have [[Service/Account#Sugar_Labs_Central_Login|Sugar Labs account]] to login to [https://packages.sugarlabs.org/ OBS] (ping [[User:alsroot|alsroot]] to add your to [https://packages.sugarlabs.org/project/monitor?project=Hexokinase Hexokinase] project users).
 
 
 
=== Sources ===
 
 
 
For all packages, sources are being stored in Gitorious [http://git.sugarlabs.org/hexokinase hexokinase] project. Clone sources you want to create packages for.
 
 
 
All {{Code|sugar*}} source repositories are [[Platform_Team/gatch#Usage|downstream branches]] for {{Code|dextrose-0.94}} upstream branches from Gitorious [http://git.sugarlabs.org/sdk SDK] project. Thus, all of them are [[Platform_Team/Guide/Sweets_Packaging|sweet projects]] and contain [[Platform_Team/Recipe_Specification|sweets.recipe]] files that describe how to create packages on OBS.
 
 
 
=== Sources re-base ===
 
 
 
Since, sugar sources are downstream branches for [http://git.sugarlabs.org/sdk SDK] project, if upstream sources where changed, [http://git.sugarlabs.org/hexokinase hexokinase] sources need to be re-based. Go to the particular source directory and type:
 
 
 
gatch merge
 
 
 
=== Build packages ===
 
 
 
If sources were updated, to create new packages, go to the particular source directory and type:
 
 
 
sweets commit -m ''<COMMIT-DESCRIPTION>''
 
 
 
The building process might be observed starting from OBS's [https://packages.sugarlabs.org/project/monitor?project=Hexokinase monitor] page. If build process is successful, the resulting packages will be hosted on [http://download.sugarlabs.org/packages/Hexokinase/ download.sugarlabs.org] site.
 
 
 
Since packages were built from sweet sources, all packages are located in {{Code|/opt/sweets}} instead of {{Code|/usr}}<br>This is useful when sugar packages require [re]building system packages, placing all downstream packages to {{Code|/opt}} will make it possible to use new system packages only with downstream Sugar and do not interfere with the rest of the system when user want to run, e.g, Gnome session.
 
 
 
== Use packages ==
 
 
 
For all supported distributions:
 
 
 
* install {{Code|sweets-sugar}} package;
 
* use {{Code|sweets-sugar}} to launch Sugar session;
 
* use {{Code|sweets-sugar-emulator}} to launch Sugar session in Xephyr.
 
 
 
=== Fedora-14 ===
 
 
 
Create repository file {{Code|/etc/yum.repos.d/hexokinase.repo}}:
 
 
 
[hexokinase]
 
name=hexokinase
 
failovermethod=priority
 
baseurl=http://download.sugarlabs.org/packages/Hexokinase/Fedora-14/
 
enabled=1
 
metadata_expire=1
 
gpgcheck=0
 
 
 
Install Sugar packages:
 
 
 
yum install sweets-sugar
 
 
 
=== Trisquel-4.1 ===
 
 
 
Attach downstream repository:
 
 
 
sudo apt-add-repository 'deb http://download.sugarlabs.org/packages/Hexokinase/Ubuntu-10.04/ ./'
 
wget -qO- http://download.sugarlabs.org/packages/Hexokinase/Ubuntu-10.04/Release.key | sudo apt-key add -
 
apt-get update
 
 
 
Install Sugar packages:
 
 
 
apt-get install sweets-sugar
 
 
 
== Build images ==
 
 
 
=== XO ===
 
 
 
=== Trisquel ===
 
 
 
== References ==
 
 
 
* Package [http://git.sugarlabs.org/hexokinase sources].
 
* OBS [https://packages.sugarlabs.org/project/monitor?project=Hexokinase project].
 
* Built [http://download.sugarlabs.org/packages/Hexokinase/ packages].
 
-->
 

Latest revision as of 02:53, 9 October 2012