Commit c4112eaa authored by David Johnson's avatar David Johnson
Browse files

Forgot the documentation!

parent c44c47c9
This document is intended for Emulab operators who wish to use Emulab's
"PlanetLab Portal" interface. Originally, this software supported only
PlanetLab, but it now supports MyPLC-based management platforms. You can add
multiple PLCs to manage if you desire.
0. Get a PI account on the PLC. Remember the passwd; we currently use it to
create slices and manage them since PLC's privilege model is very
coarse-grained at the moment.
1. Get an "emulabman" account at the PLC. The emulabman user is added to each
slice created or managed by the Emulab software. Boss uses the emulabman
account to slogin to slivers and run various configuration and management
commands. You will need to upload the public half of Boss's passphrase-less
root ssh key (/root/.ssh/ to this account via the PLC webpage.
2. Add new node types. You need a physical node type and a virt node type. If
your PLC's "name" is PlanetLabFoo, then perhaps use a virt type of 'pcpfoo'.
Then, you *MUST* create the physical type by appending 'phys' to the virt
type... since this assumption is made in the code.
NOTE: you need to set the class for these types to the type name itself!
For the virt type, you need to set isvirtnode, isdynamic, isremotenode,
isplabdslice all to 1. Then, you should make sure to set the default_osid
attribute to emulab-ops/RHL-PLAB, which is a dummy osid used for plab nodes
since they're not currently imageable. Then set the "rebootable" attribute
to 1.
For the phys type, you only need to set isremotenode to 1. Then, for
attributes, you should set at least
adminmfs_osid, control_interface, control_network, default_osid,
delay_capacity(=0), diskloadmfs_osid, imageable(=1), max_interfaces,
power_delay, rebootable(=1), simnode_capacity(=0), trivlink_maxspeed,
3. Configure database state. You must set a number of plc-related attributes
so that Emulab can invoke operations at the PLC and contact nodes to setup
First, add basic plc information:
insert into plab_plc_info \
(plc_idx,plc_name,api_url,def_slice_prefix, \
nodename_prefix,node_type,svc_slice_name) values \
(NULL,'PlanetFoo','','foo', \
replacing values as necessary. plc_name is a string WITH NO SPACES.
def_slice_prefix is whatever slice prefix the PLC has assigned your site;
we will try to create slices using this prefix. When the periodic node
discovery script runs, it will add nodes named "<nodename_prefix>N"... i.e.,
"pfoo12". node_type should be set to the virt type you added in step 2.
svc_slice_name should be set to the name of a slice you have created at PLC
in delegated mode, and to which you have added the "emulabman" user. We use
this slice mainly as a host for software, proxies, etc.
NOTE: record the auto-increment idx your plc is assigned once you do the
initial insert! You will need it now.
Then, add several plc-wide attributes:
insert into plab_plc_attributes values \
You need to set the following attributes for each PLC you add:
syncmethod Controls how the discovery script synchronizes node state
with PLC; can be either 'xmlrpc' or 'sites'.
auth_method Controls how our libraries authenticate with PLC; for now,
the only accepted value is 'password'.
username Username to authenticate with at PLC.
password Password to authenticate with at PLC.
role Role to authenticate with at PLC.
nm_username Username to contact the NodeManager with (note that this
value is a slice, just like how you normally login to
your regular slivers).
nm_key Public half of an ssh key to use when contacting the NM.
rootballs A comma-separated list of tarballs to install in experiment
slivers; each tarball may be followed by a ':' and a
directory (where they will be unpacked in the sliver)
emulabman The emulabman username; we add this user to every slice we
create so Boss can always login.
Then add a couple per-slice attributes:
insert into plab_slice_attributes values \
To get started, you only need to set attributes for your service slice:
commands A comma-separated list of commands that is run after the
rootballs have been unpacked into the slice.
rootballs <see above>
XXX: fill in what this means, how to create the basic rootballs, etc.
4. Create rootballs.
XXX: fill in later.
5. Configure state so that new plc nodes can be discovered and added
insert into nextfreenode values ('<nodetype>',nextid,nextid)
where nodetype is the virt node type you added in step 2, and nextid is the
next numeric suffix you want to be added to the nodename_prefix you chose
6. Run plabdiscover manually once, then put it in cron.
7. Add three experiments: emulab-ops/plab-monitor, emulab-ops/plab-testing,
and emulab-ops/plabnodes (use admin mode, no ns file necessary). Create
slices for the first two by inserting entries into the plab_slices table,
then adding the slices at PLC (via the PLC web interface, or by using the
plabslice command. Best to use the plabslice command, since it will ensure
that your EmulabMan username is added, and that various necessary slice
attributes are set.
7. Run plabmonitord manually once, see that things are working... then start
it as a daemon.
Now you can use PLC-based slivers in experiments.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment