NAME

pldeploy - utility to deploy, configure and control PlanetLab services


SYNOPSIS

pldeploy [command] [options]


DESCRIPTION

pldeploy is a tool for deploying, configuring and managing service on PlanetLab. PlanetLab services run in a ``slice'', a collection of virtual machines running on one or more PlanetLab nodes. Each virtual machine can be configured with one or more ``cogs'', a particular component service. In the most common case, a service consists of a single cog that runs on all virtual machines.

COMMON OPTIONS

    --failed <file> -- name of a file for list of failed nodes
    --proxy <host:port> -- specify an http proxy for ssh connections
    --root <directory> -- specify the slice root directory
    --set <param>=<value> -- specify a pass-on parameter
    --timeout <seconds> -- specify the number of seconds to wait for ssh
    --thread <count> -- specify the number of threads to use
    --verbose -- show lots of useful information

COMMANDS

createslice -- create a slice in the current directory

    --slice <slicename> -- name of the PlanetLab slice

createcog -- create a cog in the current slice

    --cog <cogname> -- name of the cog to create

add -- add one or more nodes to a cog

    --cog <cogname> -- name of the cog, defaults to all cogs
    --node <nodename> -- name of the node, can specify multiple
    --node @<file> -- name of a file with node names, one per line
    --node "--" -- read a list of nodes from stdin, one per line
    --deploy -- deploy the cog(s) on all nodes after creating
    --start -- start the cog(s) on the node(s) after deploy
    
=head3 remove -- remove one or more nodes from a cog
    --cog <cogname> -- name of the cog, defaults to all cogs
    --node <nodename> -- name of the node, can specify multiple
    --node @<file> -- name of a file with node names, one per line
    --node "--" -- read a list of nodes from stdin, one per line
    --stop -- stop the cog(s) before removing
    --clean -- cleanup on the node after the cog is stopped
    --force -- force removal of all nodes from a cog

deploy -- push files out to the nodes

    --cog <cogname> -- name of the cog, defaults to all cogs
    --node <nodename> -- name of the node, can specify multiple
    --node @<file> -- name of a file with node names, one per line
    --node "--" -- read a list of nodes from stdin, one per line
    --stop -- stop the cog(s) before deploy
    --start -- start the cog(s) on the node(s) after deploy
    
=head3 clean -- remove files from the node
    --cog <cogname> -- name of the cog, defaults to all cogs
    --node <nodename> -- name of the node, can specify multiple
    --node @<file> -- name of a file with node names, one per line    
    --node "--" -- read a list of nodes from stdin, one per line
    --old -- pass version information to the node
    
=head3 stamp -- set the version stamp in local cog directory
    --cog <cogname> -- name of the cog to timestamp

version -- check the version of the cog on each node

    --cog <cogname> -- name of the cog, defaults to all cogs
    --node <nodename> -- name of the node, can specify multiple
    --node @<file> -- name of a file with node names, one per line    
    --node "--" -- read a list of nodes from stdin, one per line
    --old -- pass version information to the node
    
=head3 start -- start the service on the node
    --cog <cogname> -- name of the cog, defaults to all cogs
    --node <nodename> -- name of the node, can specify multiple
    --node @<file> -- name of a file with node names, one per line    
    --node "--" -- read a list of nodes from stdin, one per line
    --old -- pass version information to the node
    
=head3 stop -- stop the service on the node
    --cog <cogname> -- name of the cog, defaults to all cogs
    --node <nodename> -- name of the node, can specify multiple
    --node @<file> -- name of a file with node names, one per line    
    --node "--" -- read a list of nodes from stdin, one per line
    --old -- pass version information to the node
    
=head3 status -- check the service status
    --cog <cogname> -- name of the cog, defaults to all cogs
    --node <nodename> -- name of the node, can specify multiple
    --node @<file> -- name of a file with node names, one per line    
    --node "--" -- read a list of nodes from stdin, one per line
    --old -- pass version information to the node
    
=head3 pull -- retrieve data stored in the OUTBOUND directory
    --cog <cogname> -- name of the cog, defaults to all cogs
    --node <nodename> -- name of the node, can specify multiple
    --node @<file> -- name of a file with node names, one per line    
    --node "--" -- read a list of nodes from stdin, one per line

exec -- execute a command on all nodes

    --cog <cogname> -- name of the cog, defaults to all cogs
    --node <nodename> -- name of the node, can specify multiple
    --node @<file> -- name of a file with node names, one per line    
    --node "--" -- read a list of nodes from stdin, one per line
    --exec <command> -- a command to invoke on the node through ssh

help -- display usage information


CUSTOMIZATION

Behavior of pldeploy can be customized in the SD configuration file stored in the local control directory. Each line in the file contains a configuration directive consisting of a field and a value separated by a ``:''. Blank lines and lines that begin with ``#'' are ignored.

The following directives are understood:

    slice -- string, slice name
    failed-file -- file name, place to record list of failed nodes
    proxy -- host:port, http proxy server
    verbose -- 1|0, show debugging information
    nocheck -- host, do not verify working ssh on the host
    suspend -- host, ignore all ops on the host
    timeout -- integer, seconds to wait for completion of a command
    threads -- integer, number of threads to create


SEE ALSO

Additional documentation for building and deploying a service with deploy can be found in the accompanying ``HOWTO'' guide.

See http://www.planet-lab.org/ for more information.


AUTHOR

Mic Bowman, <mic.bowman@intel.com>