Contains:
-
Frisbee resource controller which conrols frisbee and imagezip in order to save and load images to nodes.
-
CM resource controller which controls chassis managers on nodes.
-
User resource controller which administers users.
-
omf6 script which orchistrates the above.
These tools are under development. Unpredictable behaviour is to be expected untill a stable version is provided.
Install frisbee, which is required by the frisbee proxy
$ apt-get install frisbee
If that fails add this line 'deb http://pkg.mytestbed.net/ubuntu precise/ ' to your /etc/apt/sources.list and then 'apt-get update'.
First you need to install the gem
$ gem install nitos_testbed_rc --pre
Then you need to run the install_ntrc script to generate the configuration files tutorial.
$ install_ntrc
Use omf_cert.rb script to generate the following certificates and place them on directories '/root/.omf' and '/root/.omf/trusted_roots'.
$ mkdir /root/.omf
$ mkdir /root/.omf/trusted_roots
$ cd /root/.omf
Create a root certificate (change DOMAIN).
Important!!! If you already have a root certificate (probably created while installing omf_sfa) DO NOT create this certificate again and use the old one instead.
$ omf_cert.rb --email root@DOMAIN -o /root/.omf/trusted_roots/root.pem --duration 5000000 create_root
Create a certificate for user_proxy of NTRC (change DOMAIN, XMPP_DOMAIN and if you wish the output file names).
$ omf_cert.rb -o user_factory.pem --email user_factory@DOMAIN --resource-type user_factory --resource-id xmpp://user_factory@XMPP_DOMAIN --root /root/.omf/trusted_roots/root.pem --duration 50000000 create_resource
Create a certificate for cm_proxy of NTRC (change DOMAIN, XMPP_DOMAIN and if you wish the output file names).
$ omf_cert.rb -o cm_factory.pem --email cm_factory@DOMAIN --resource-type cm_factory --resource-id xmpp://cm_factory@XMPP_DOMAIN --root /root/.omf/trusted_roots/root.pem --duration 50000000 create_resource
Create a certificate for frisbee_proxy of NTRC (change DOMAIN, XMPP_DOMAIN and if you wish the output file names).
$ omf_cert.rb -o frisbee_factory.pem --email frisbee_factory@DOMAIN --resource-type frisbee_factory --resource-id xmpp://frisbee_factory@XMPP_DOMAIN --root /root/.omf/trusted_roots/root.pem --duration 50000000 create_resource
Finally, omf6 script will be used by every user in the server, so we need to create a certificate for each user and place it in folder '~/.omf'.
Important (just for the root user)!!! If you already have a certificate for the root user in folder /root/.omf (probably created while installing omf_sfa) DO NOT create this certificate again and use the old one instead.
Use this commands to generate a certificate for a user (change DOMAIN, USERNAME and if you wish the output file names)
$ omf_cert.rb -o user_cert.pem --email USERNAME@DOMAIN --user USERNAME --root /root/.omf/trusted_roots/root.pem --duration 50000000 --geni_uri URI:urn:publicid:IDN+DOMAIN+user+USERNAME create_user
$ cp user_cert.pem /home/USERNAME/.omf
Change configuration file '/etc/nitos_testbed_rc/user_proxy_conf.yaml', which is related to user_proxy of NTRC. For example:
#xmpp details
:xmpp:
:username: user_proxy
:password: pw
:server: DOMAIN
#x509 certificates to be used by user_proxy
:auth:
:root_cert_dir: ~/.omf/trusted_roots
:entity_cert: ~/.omf/user_factory.pem
:entity_key: ~/.omf/user_factory.pkey
#operation mode for OmfCommon.init (development, production, etc)
:operationMode: development
Change configuration file '/etc/nitos_testbed_rc/cm_proxy_conf.yaml', which is related to cm_proxy of NTRC. For example:
#details to be used for the connection to the xmpp server
:xmpp:
:username: cm_proxy
:password: pw
:server: DOMAIN
#x509 certificates to be used by cm_proxy
:auth:
:root_cert_dir: ~/.omf/trusted_roots
:entity_cert: ~/.omf/cm_factory.pem
:entity_key: ~/.omf/cm_factory.pkey
#time (in seconds) before timeout error occurs
:timeout: 80
#operation mode for OmfCommon.init (development, production, etc)
:operationMode: development
#testbed xmpp topic
:testbedTopic: am_controller
Change configuration file '/etc/nitos_testbed_rc/frisbee_proxy_conf.yaml', which is related to frisbee_proxy of NTRC. For example:
#xmpp details
:xmpp:
:username: frisbee_proxy
:password: pw
:server: DOMAIN
#x509 certificates to be used by user_proxy
:auth:
:root_cert_dir: ~/.omf/trusted_roots
:entity_cert: ~/.omf/frisbee_factory.pem
:entity_key: ~/.omf/frisbee_factory.pkey
#operation Mode for OmfCommon.init (development, production, etc)
:operationMode: development
#testbed xmpp topic
:testbedTopic: am_controller
#frisbee and imagezip configuration
:frisbee:
# Directory images are stored
:imageDir: /var/lib/omf-images-6
#defaultImage: orbit-baseline
:defaultImage: baseline.ndz
# max bandwidth for frisbee server
:bandwidth: 50000000
# Multicast address to use for servicing images
#mcAddress: 224.0.0.2
:mcAddress: 224.0.0.1
# Using ports starting at ...
:startPort: 7000
# Time out frisbee server if nobody requested it within TIMEOUT sec
:timeout: 3600
# Directory to find frisbee daemons
:frisbeedBin: /usr/sbin/frisbeed
:frisbeeBin: /usr/sbin/frisbee
:imagezipClientBin: /usr/bin/imagezip
:imagezipServerBin: /bin/nc
# Local interface to bind to for frisbee traffic
#multicastIF: 192.168.204.1
:multicastIF: 10.0.1.200
Important!!! DO NOT modify the file /etc/nitos_testbed_rc/omf_script_conf.yaml. It is a skeleton used by the user_proxy to generate the configuration file for every user it creates.
Finaly, create/modify for each user the configuration file '/home/USERNAME/.omf/etc/omf_script_conf.yaml', which is related to omf6 script of NTRC, every user of the testbed should have his own configuration file in order to use omf6 script.
$ mkdir /home/USERNAME/.omf/etc
$ cp /etc/nitos_testbed_rc/omf_script_conf.yaml /home/USERNAME/.omf/etc
For example:
:xmpp:
:script_user: USERNAME
:password: pw
:server: DOMAIN
:auth:
:root_cert_dir: /etc/nitos_testbed_rc/.omf/trusted_roots
:entity_cert: ~/.omf/user_cert.pem
:entity_key: ~/.ssh/id_rsa
#operation mode for OmfCommon.init (development, production, etc)
:operationMode: development
#omf script configuration
:omf_script:
#default last action on load and save commands (reset or shutdown)
:last_action: reset
To start/stop/restart the upstart service of nitos_testbed_rc use:
$ start ntrc
$ stop ntrc
$ restart ntrc
Starting ntrc as an upstart will generate the following log files:
-
user rc: /var/log/upstart/ntrc_user.log
-
frisbee rc: /var/log/upstart/ntrc_frisbee.log
-
cm rc: /var/log/upstart/ntrc_cm.log
Alternatively (mostly for debugging reasons) you can execute all proxies with one command:
$ run_proxies
Or you run proxies seperatly
$ user_proxy
$ cm_proxy
$ frisbee_proxy
Now you can use omf6 script to execute omf6 related commands
$ omf6 --help