VIFIB DESCENTRALIZED CLOUD COMPUTING

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

Configuring SlapOS Client

What is SlapOS Client?

SlapOS client is a set of tools allowing you to manage your SlapOS Nodes, your instances and your SlapOS Master account. It is bundled with the standard SlapOS Node installation.

It will allow you to request and manage your instances, to install Software Release on your nodes, as if you were on slapos.org, but with all the power of terminal.

Step 0: requirements

  • A GNU/Linux Server
  • slapos-node package installed on the machine. No need for actual node configuration, only the package itself (containing the binaries) are required.
  • A SlapOS Account
  • NO ROOT ACCOUNT IS NEEDED. Don't use root, except if you have a specific reason to do so.

To follow this tutorial, you will need a server with a GNU/Linux distribution, slapos-node package installed and slapos.org account.

Step 1: Register and obtain a Credential security Token

Go to slapos.org (or any other SlapOS Master), register if not already done, go to My Account and click on Generate a Credential Secuity Token:

Step 1.5: Save the New Token

  • As soon as you click on the button a new token will be generated. Save this token for future use on this tutorial.

Step 2: Run slapos configure client

Run slapos command below, to create the configuration  files, when asked please input the Token Saved on Step above.

  • slapos configure client 

 This command will generate the following files:

  • $HOME/.slapos/slapos-client.cfg
  • $HOME/.slapos/certificate : Your user SSL Cetificate
  • $HOME/.slapos/key: Your user SSL Private Key

You can now, Edit $HOME/.slapos/slapos-client.cfg to include some aliases: 

alias =
    webrunner https://lab.nexedi.com/nexedi/slapos/raw/1.0.49/software/slaprunner/software.cfg

Check certificates

In order to check if certificate is okay (good location, rights, content...), you can run those commands:

To check validity of certificate:

$ /opt/slapos/parts/openssl/bin/openssl x509 -noout -in $HOME/.slapos/client.crt

To check the key:

$ /opt/slapos/parts/openssl/bin/openssl rsa -noout -in $HOME/.slapos/client.key -check

If you see no output or if command states it's okay, well, everything is okay.

Using slapos client commands

slapos supply

Request installation of a software on a node:

  • slapos supply webrunner COMP-XXXX

Remove a software from a node:

  • slapos remove webrunner COMP-XXXX
Note: Replace COMP-XXXX by the computer number of where you wanna gonna to supply the software.

slapos request

Request a new or existing instance of wordpress named "mywordpress":

  • slapos request mywebrunner webrunner
You can't, as of yet, destroy an instance through the command-line.

slapos console

Open the SlapOS console:

  • slapos console

slapconsole is for quite advanced usages. It is basically a Python prompt with all slap modules injected and ready to be used.

We will learn here how to use slapconsole.

Global Variables

  • request
  • supply
  • slap
  • software_list
  • kvm
  • mysql-5.1
  • ...

Official doc available here.

Explanations

  • request is a method which can be used to create new instances of any resource / software on a computer
  • supply is a method to define that a given computer can create instances of a given resource
  • slap is a configured instance of the Slap class of the API. It is used for advanced usages.
  • software_list is a dictionnary containing all the officially supported software releases by Vifib.
  • All the officially supported software releases are also available as global variable : kvm, mysql-5.1, joomla, etc.