VIFIB DESCENTRALIZED CLOUD COMPUTING

SlapOS is a decentralized Cloud Computing technology that can automate the deployment and configuration of applications in a heterogeneous environment.

How to Install SlapOS Slave Node On the Windows

Jondy Zhao

Revision History
Revision 0.1 2011-09-13 Jondy Zhao - jondy.zhao@gmail.com
Create the document.

Chapter 1. Installing SlapOS Slave Node from the Sources

We need Cygwin environment in order to run SlapOS node on the Windows. The following steps describe how to install SlapOS from the sources:

Cygwin Installation

Go to "http://cygwin.com/" and click on "Install Cygwin Now!". This will download a GUI installer called setup.exe which can be run to download a complete cygwin installation via the internet. Follow the instructions on each screen to install Cygwin.

The Root Directory for Cygwin (default C:\cygwin) will become / within your Cygwin installation. You must have write access to the parent directory, and any ACLs on the parent directory will determine access to installed files.

By default, setup.exe will install only the packages in the Base category and their dependencies, resulting in a minimal Cygwin installation. We need choose the packages required by SlapOS, see Appendix A, Cygwin Required Packages List. Since setup.exe automatically selects dependencies, be careful not to unselect any required packages. In particular, everything in the Base category is required.

More information please refer to http://cygwin.com/cygwin-ug-net/setup-net.html#setup-download

SlapOS Installation

Double click the desktop icon "Cygwin" or C:\cygwin\Cygwin.bat (Assume the cygwin root directory is C:\cygwin). A cygwin box will open, the following commands are typed in this box.

First we create the directory

  $ mkdir -p /opt/slapos

Get the source, we need use branch "windows":

  $ cd /opt/slapos
  $ mkdir src
  $ git clone -b windows http://git.erp5.org/repos/slapos.git src

Create the file /opt/slapos/buildout.cfg with content:

[buildout]
extends = src/component/slapos/buildout.cfg

Add extra openssl path to PATH, python2.7 needs the path of openssl library to find the shared library

  $ export PATH=/opt/slapos/parts/openssl/bin:$PATH
  $ echo PATH=/opt/slapos/parts/openssl/bin:$PATH >> ~/.bash_profile

Install SlapOS using buildout

  $ cd /opt/slapos
  $ python -S -c 'import urllib2;print urllib2.urlopen(\
      "http://www.nexedi.org/static/packages/source/slapos.buildout/bootstrap-1.5.3-dev-SlapOS-002.py" \
      ).read()' > bootstrap.py
  $ python -S bootstrap.py
  $ bin/buildout -v -N

Waiting until buildout process is completed. Finally take some minor changes:

   $ cd /opt/slapos
   $ sed -i "s/env={}/env=None/g" `find eggs -name svcbackend.py`

env={} results in python2.7 can't find the required shared library.

SlapOS Configuration

Before proceeding further, we need to register your server to VIFIB community Cloud. By doing so, we will obtain X509 certificate and key which are later needed for the configuration process.

Refer to http://www.slapos.org/wiki/slapos-Wiki.Home/osoe-Lecture.SlapOS.Extended/developer-Installing.SlapOS.Slave.Node.Source

If you have a public IPv4 address attached to internet but do not have native IPv6. You need configure an IPv6 Tunnel as the following:

  • Install IPv6

    $ netsh interface ipv6 install
  • Configure Teredo Tunnel

    $ netsh interface ipv6 set teredo client teredo.remlab.net 60 
  • Check it works

      $ netsh interface ipv6 show interface
      The output maybe like this:
            Idx  Met   MTU    State         Name
            ---  ----  -----  ------------  -----
             14     0   1500  Connected     Wireless Network Connection
             13     0   1500  Disconnected  Local Area Connection
              9     0   1500  Connected     VirtualBox Host-Only Network
              4     2   1280  Connected     Teredo Tunneling Pseudo-Interface
              3     1   1280  Connected     6to4 Pseudo-Interface
              2     1   1280  Connected     Automatic Tunneling Pseudo-Interface
              1     0   1500  Connected     Loopback Pseudo-Interface    
      Be sure the state of Teredo Tunneling Pseudo-Interface is connected
    

If you already have an IPv6 enabled provider, skip this.

It is now time to configure SlapOS. First we create the file /opt/slapos/slapos.cfg:

[slapos]
software_root = /opt/slapgrid
instance_root = /srv/slapgrid
master_url = https://slap.vifib.com
computer_id = COMP-XXX
key_file = /etc/opt/slapos/key
cert_file = /etc/opt/slapos/certificate
certificate_repository_path = /etc/opt/slapos/pki/

[slapformat]
computer_xml = /etc/slapos/slapos.xml
log_file = /var/log/slapformat.log
partition_amount = 2
bridge_name = slapbr0
partition_base_name = slappart
user_base_name = slapuser
tap_base_name = slaptap
# You can choose any other local network which does not conflict with your
# current machine configuration
ipv4_local_network = 192.168.0.0/16"

Replace the computer_id with the responding id you required from VIFIB. Then create the directories and copy the key and certificate files which were generated before to /etc/slapos.

  $ mkdir -p /etc/slapos/ski
  $ mkdir -p /opt/slapgrid
  $ mkdir -p /svr/slapgrid

Now, create the file /opt/slapos/computer_definition.cfg:

[computer]

[partition_0]
address = 192.168.128.28/255.255.255.0
user = slapuser0
network_interface = slapbr0
pathname = slappart0

[partition_1]
address = 192.168.128.32/255.255.255.0
user = slapuser1
network_interface = slapbr0
pathname = slappart1

Run slapformat to register the partitions:

  $ cd /opt/slapos
  $ bin/slapformat -c --alter_network=False --alter_user=False -i computer_definition.cfg slapos.cfg

Run slapgrid to check what should be done:

  $ cd /opt/slapos
  $ bin/slapgrid -c slapos.cfg

Everyting is OK, my SlapOS Slave Node is on.

Note

Running slapformat at first time will raise an error: "sem_init: Device or resource busy ..." Run slapformat again, no error occurs. I don't know why, it need to be resolved.

Chapter 2. Installing SlapOS Slave Node from the Installer Package

If you'd like to use SlapOS as an end user, you can install SlapOS by the Installer as the following step:

Download the SlapOS's Installer

 

Run the installer

Double click the installer, it will start the setup process. What you need to do is to select the root directory of SlapOS, it's C:\slapos by default. Then waiting ... A icon "SlapOS Console" will be found on the desktop after the installer is completed.

SlapOS Configuration

Refer to the section called “SlapOS Configuration”

SlapOS Usage

Double click the desktop icon "SlapOS Console", a slapos box will open. In this box you can run slapgrid, slapformat, slapconsole etc.

 

Appendix A. Cygwin Required Packages List

 

  • apache

  • apache-dev

  • autobuild

  • autoconf

  • automake

  • binutils

  • bison

  • bzr

  • cmake

  • cyrus-sasl

  • db4.5

  • flex

  • gcc4

  • gcc4-core

  • gcc4-c++

  • git

  • glib2.0

  • gtk+

  • gtk2.0

  • libgtk2.0-dev

  • libtool

  • libxml2

  • libxml2-dev

  • libxslt

  • libxslt-dev

  • make

  • openldap

  • openldap-dev

  • openssl ?

  • openssl-dev ?

  • patch

  • pkg-config

  • python

  • python-libxlst

  • python-libxml

  • python-nummy

  • readline ?

  • rpcgen

  • sqllite3

  • stunnel

  • subversion

  • subversion-dev

  • vim

  • w32api

  • wget

  • zlib

  • zlib-dev