Thursday, May 16, 2024

youtube

   
Text Size

Articles

OMF Nitos & Planetlab Federation

Nitos testbed can support federation with the Planetlab testbed via OMF. In order to be able to use them together,
we need to install the OMF EC at our PC. Instructions can be found at http://omf.mytestbed.net.

After we install the EC, we need to change the configuration file found at /etc/omf-expctl-5.3/omf-expctl.yaml like the following:

:econtroller:

:config:

# config parameter for the "default" profile
# important: there has to be a default entry. it should contain a complete
# set of parameters, so other profiles can fall back to it
:default:

# this is the domain name of the testbed
# you need a corresponding entry in the testbed table of your inventory
# that has this name set in the 'node_domain' column
:domain: 'nitlab.inf.uth.gr'
:slice: certhple_nitos1 #'default_slice'

# this is the path where ec should look for its repository of built-in
# experiments (e.g. example experiments, maintenance experiments, etc...)
:repository:
:path: ["../share/repository", "/usr/share/omf-expctl-5.3/repository"]

# uri to the oml server to use for this ec

# (can be overwritten on the ec command line)
:omluri: 'tcp:195.251.17.239:3003'

# this is the url where ec can contact the inventory service
:inventory:
:url: 'http://nitlab.inf.uth.gr:5053/inventory'

# this is the url where ec can contact the cmc service
:cmc:
:url: 'http://nitlab.inf.uth.gr:5053/cmc'

# this is the url where ec can contact the result service
:result:
:url: 'http://nitlab.inf.uth.gr:5053/result'
# this is the url where ec can contact the pxe service
:pxe:
:url: 'http://nitlab.inf.uth.gr:5053/pxe'

# this is the url where ec can contact the frisbee service
:frisbee:
:url: 'http://nitlab.inf.uth.gr:5053/frisbee'

# this is the url where ec can contact the frisbee service
:saveimage:
:url: 'http://nitlab.inf.uth.gr:5053/saveimage'

# this should be the ip address of the local interface that is accessible
# from the nodes. this address will be given to the nodes so they can
# retrieve applications from the ec via http.
:web:
:host: '195.251.17.239'
:resource_dir: ["../../omf-common/share/htdocs", "/usr/share/omf-common-5.3/share/htdocs"]

:communicator:

# set this to false if you want to disable signature checks and message signing
:authenticate_messages: false
# your rsa/dsa ssh private key file
:private_key: '~/.ssh/id_rsa'
# directory holding the public keys of your omf peers
:public_key_dir: '~/.omf-expctl/peer_keys'

:type: 'xmpp'
:xmpp:
# address of the server to use as gateway for pubsub communication
:pubsub_gateway: boot.planet-lab.eu #'nitlab.inf.uth.gr'
# the 'pubsub_domain' is the hostname of the pubsub server on which
# you would like to host your slice's communications. leave this
# commented if you wish to host them on the 'pubsub_gateway' server
# which you selected above.
#:pubsub_domain: 'norbit.npc.nicta.com.au'
# the following 'pubsub_user' and 'pubsub_pwd' are optional
# ec will create a unique user/pwd for itself if this is not provided
# in a typical omf install, you should not uncomment these lines
# (do so only if you need to manually set user/password for
# your client to connect to your pubsub server)
#:pubsub_user: 'my_ec_name'
#:pubsub_pwd: 'my_ec_password'
#####
#
:p2p:
:domain: 'planetlab'
:repository:
:path: [".", "../share/repository", "/usr/share/omf-expctl-5.3/repository"]
:inventory:   
:url: 'http://planetlab-europe-07.ipv6.lip6.fr:5053/inventory'
#      :web:
#       :host: 'your_hostname_or_ip_here'
:result:
:url: 'http://planetlab-europe-07.ipv6.lip6.fr:5053/result/'
:communicator:
:type: 'xmpp'
:xmpp:
:server: planetlab-europe-07.ipv6.lip6.fr
:password: '123'
####
:planetlab:
:domain: 'planetlab'
:slice: 'ost_securexmpp'
:repository:
:path: ["../share/repository", "/usr/share/omf-expctl-5.3/repository"]
:inventory:
:url: 'http://mytestbed.net:5053/inventory'

:web:
:host: '10.0.0.200'
:resource_dir: ["../../omf-common/share/htdocs", "/usr/share/omf-common-5.3/share/htdocs"]

:communicator:

:authenticate_messages: true
:private_key: '~/.ssh/id_rsa'
:public_key_dir: '~/.omf-expctl/peer_keys'

:type: 'xmpp'
:xmpp:
:pubsub_gateway: 'mytestbed.net'

# "debug" configuration
#
# to use this testbed, call ec with the option print_only or "-d debug"
# any parameter settings within this section will override the settings
# done in the "default" section. the ec first loads the "default"
# settings, then it uses the "debug" specific settings to override the
# relevant parameters
:debug:
:repository:
:path: ['.', '../share/repository']
:communicator:
:type: 'mock'
:log: '../etc/omf-expctl/debug_log.xml'
:inventory:
:url: 'http://nitlab.inf.uth.gr:5053/inventory'


After configuring the EC, we have to change the RC at our nitos node and configure them to use the planetlab XMPP server
for communication and the slice we will use. These should be the same on all our nodes and the PLE nodes.
Configuration on our nodes can be found at /etc/omf-resctl-5.3/omf-resctl.yaml. Edit the configuration file and change the pubsub server used
for communication to "boot.planet-lab.eu" and the slice to "certhple_nitos1". Restart the omf RC on the nodes.

Now we are able to use in our experiment all NITOS nodes and the PLE node "planetlab.test.inria.onelab10". The experiment is run locally
from our PC, running the command "omf exec experiment_name".
If you need visualization support, then add code to your experiment and while running your experiment, point your browser to
http://localhost:"port", where port is given at the beginning of the experiment. If the experiment is running with no problems,
the DB where the records of the experiment are hold can be found at the NITOS AM, but the log is created locally to your PC.