libra/doc/config.rst
Andrew Hutchings c9709df427 Add failed node handling
There are two cases where we can fail with node building:

1. The node errors or times out
2. Sending to the API server fails

In these cases a new timer is triggered and will test these nodes and add or
delete them as required.  It stores them in a separate file.

This also adds a dummy API driver that always says 5 nodes are needed and
echos the node data sent to it to the log file.

Fixes bug #1080863

Change-Id: I9a67de2be5336abdfcad5a3bb372c467cb57f4b1
2012-11-22 14:26:28 +00:00

277 lines
7.9 KiB
ReStructuredText

Configuration of Node Pool Manager and Worker
=============================================
Options can be specified either via the command line, or with a configuration
file, or both. Options given on the command line will override any options
set in the configuration file.
Configuration File Format
-------------------------
The configuration file is in `INI format
<http://en.wikipedia.org/wiki/INI_file>`_. Options are expressed in one of
two forms::
key = value
key : value
Some key points to note:
* Boolean options should be given either a value of `true` or `false`.
* Some options can contain multiple values (see 'server' option in the
``[worker]`` section).
* If an option has both a short-form and long-form (e.g., ``-d`` and
``--debug``), then you should use the long-form name in the configuration
file.
* Unknown sections are ignored. This allows all Libra utilities to share
the same configuration file, if desired.
Global Section
^^^^^^^^^^^^^^
The ``[global]`` section contains options common to the various Libra
utilities (worker, mgm, etc). This section is read before any other
section, so values may be overridden by the other sections:
.. code-block:: ini
[global]
verbose = true
Worker Section
^^^^^^^^^^^^^^
The ``[worker]`` section is specific to the libra_worker utility. Below
is an example:
.. code-block:: ini
[worker]
user = haproxy
group = haproxy
driver = haproxy
reconnect_sleep = 60
server = 10.0.0.1:8080 10.0.0.2:8080
pid = /var/run/libra/libra_worker.pid
logfile = /var/log/libra/libra_worker.log
Pool Manager Section
^^^^^^^^^^^^^^^^^^^^^
The ``[mgm]`` section is specific to the libra_pool_mgm utility. Below is an
example:
.. code-block:: ini
[mgm]
pid = /var/run/libra/libra_mgm.pid
logfile = /var/log/libra/libra_mgm.log
datadir = /etc/libra/
nova_auth_url = https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/
nova_user = username
nova_pass = password
nova_tenant = tenant
nova_region = region
nova_keyname = default
nova_secgroup = default
nova_image = 12345
nova_image_size = standard.medium
api_server = 10.0.0.1:8889 10.0.0.2:8889
nodes = 10
check_interval = 5
failed_interval = 15
node_basename = 'libra'
Worker Command Line Options
---------------------------
.. program:: libra_worker.py
.. option:: -c <FILE>, --config <FILE>
Load options from the specified configuration file. Command line
options will take precedence over any options specified in the
configuration file.
.. option:: -d, --debug
Enable debugging output.
.. option:: --driver <DRIVER>
Load balancer driver to use. Valid driver options are:
* *haproxy* - `HAProxy <http://haproxy.1wt.eu>`_ software load balancer.
This is the default driver.
.. option:: --group <GROUP>
Specifies the group for the process when run in daemon mode.
.. option:: -h, --help
Show the help message and quit.
.. option:: -l <FILE>, --logfile <FILE>
Name of the log file. When running in daemon mode, the default log
file is */var/log/libra/libra_worker.log*. When not in daemon mode,
logging will go to STDOUT unless a log file is specified.
.. option:: -n, --nodaemon
Do not run as a daemon. This option is useful for debugging purposes
only as the worker is intended to be run as a daemon normally.
.. option:: -p <PID>, --pid <PID>
Name of the PID file to use. Default is:
*/var/run/libra/libra_worker.pid*
.. option:: -s <SECONDS>, --reconnect_sleep <SECONDS>
The number of seconds to sleep between job server reconnect attempts
when no specified job servers are available. Default is 60 seconds.
.. option:: --server <HOST:PORT>
Used to specify the Gearman job server hostname and port. This option
can be used multiple times to specify multiple job servers.
.. option:: --user <USER>
Specifies the user for the process when in daemon mode. Default is the
current user.
.. option:: -v, --verbose
Enable verbose output. Normally, only errors are logged. This enables
additional logging, but not as much as the :option:`-d` option.
.. option:: --stats-poll <SECONDS>
The number of seconds to sleep between statistics polling of the
load balancer driver. Default is 300 seconds.
Pool Manager Command Line Options
---------------------------------
.. program:: libra_pool_mgm.py
.. option:: --api_server <HOST:PORT>
The hostname/IP and port colon separated for use with the HP REST API
driver. Can be specified multiple times for multiple servers
.. option:: -c <FILE>, --config <FILE>
Load options from the specified configuration file. Command line
options will take precedence over any options specified in the
configuration file.
.. option:: --check_interval <CHECK_INTERVAL>
How often to check the API server to see if new nodes are needed
(value is minutes)
.. option:: --failed_interval <FAILED_INTERVAL>
How often to check the list of failed node uploads to see if the nodes
are now in a good state (value is in minutes)
.. option:: -d, --debug
Enable debugging output.
.. option:: --driver <DRIVER>
API driver to use. Valid driver options are:
* *hp_rest* - HP REST API, talks to the HP Cloud API server (based
on Atlas API)
This is the default driver.
.. option:: --group <GROUP>
Specifies the group for the process when run in daemon mode.
.. option:: -h, --help
Show the help message and quit.
.. option:: -l <FILE>, --logfile <FILE>
Name of the log file. When running in daemon mode, the default log
file is */var/log/libra/libra_worker.log*. When not in daemon mode,
logging will go to STDOUT unless a log file is specified.
.. option:: --datadir <DATADIR>
The data directory used to store things such as the failed node list.
.. option:: -n, --nodaemon
Do not run as a daemon. This option is useful for debugging purposes
only as the worker is intended to be run as a daemon normally.
.. option:: --node_basename <NODE_BASENAME>
A name to prefix the UUID name given to the nodes the pool manager
generates.
.. option:: --nodes <NODES>
The size of the pool of spare nodes the pool manager should keep.
.. option:: --nova_auth_url <NOVA_AUTH_URL>
The URL used to authenticate for the Nova API
.. option:: --nova_user <NOVA_USER>
The username to authenticate for the Nova API
.. option:: --nova_pass <NOVA_PASS>
The password to authenticate for the Nova API
.. option:: --nova_tenant <NOVA_TENANT>
The tenant to use for the Nova API
.. option:: --nova_region <NOVA_REGION>
The region to use for the Nova API
.. option:: --nova_keyname <NOVA_KEYNAME>
The key name to use when spinning up nodes in the Nova API
.. option:: --nova_secgroup <NOVA_SECGROUP>
The security group to use when spinning up nodes in the Nova API
.. option:: --nova_image <NOVA_IMAGE>
The image ID or name to use on new nodes spun up in the Nova API
.. option:: --nova_image_size <NOVA_IMAGE_SIZE>
The flavor ID (image size ID) or name to use for new nodes spun up in
the Nova API
.. option:: -p <PID>, --pid <PID>
Name of the PID file to use. Default is:
*/var/run/libra/libra_worker.pid*
.. option:: --user <USER>
Specifies the user for the process when in daemon mode. Default is the
current user.
.. option:: -v, --verbose
Enable verbose output. Normally, only errors are logged. This enables
additional logging, but not as much as the :option:`-d` option.