Update configuration.rst
This commit is contained in:
parent
41635aee6c
commit
c21f807630
@ -25,16 +25,17 @@ Configuring actions
|
|||||||
Actions can be configured in a separate yaml file (by default ``rq.yaml`` is used) and / or defind in the main config file or passed via command line options ``-P``, ``-C``, ``-S``, ``-G``.
|
Actions can be configured in a separate yaml file (by default ``rq.yaml`` is used) and / or defind in the main config file or passed via command line options ``-P``, ``-C``, ``-S``, ``-G``.
|
||||||
|
|
||||||
The following actions are available for definition:
|
The following actions are available for definition:
|
||||||
|
|
||||||
* **put** - a list of tuples / 2-element lists: [source, destination]. Passed to ``scp`` like so ``scp source <node-ip>:destination``. Wildcards supported for source.
|
* **put** - a list of tuples / 2-element lists: [source, destination]. Passed to ``scp`` like so ``scp source <node-ip>:destination``. Wildcards supported for source.
|
||||||
* **cmds** - a list of dicts: {'command-name':'command-string'}. Example: {'command-1': 'uptime'}. Command string is a bash string. Commands are executed in a sorted order of their names.
|
* **cmds** - a list of dicts: {'command-name':'command-string'}. Example: {'command-1': 'uptime'}. Command string is a bash string. Commands are executed in a sorted order of their names.
|
||||||
* **scripts** - a list of script filenames located on a local system. If filename does not contain path separator, the script is expected ot be located inside ``rqdir/scripts``. Otherwise the provided path is used to read the script.
|
* **scripts** - a list of script filenames located on a local system. If filename does not contain path separator, the script is expected ot be located inside ``rqdir/scripts``. Otherwise the provided path is used to read the script.
|
||||||
* **files** - a list of filenames to collect. passed to ``scp``. Supports wildcards.
|
* **files** - a list of filenames to collect. passed to ``scp``. Supports wildcards.
|
||||||
* **filelists** - a list of filelist filenames located on a local system. Filelist is a text file containing files and directories to collect, passed to rsync. Does not support wildcards. If filename does not contain path separator, the filelist is expected to be located inside ``rqdir/filelists``. Otherwise the provided path is used to read the filelist.
|
* **filelists** - a list of filelist filenames located on a local system. Filelist is a text file containing files and directories to collect, passed to rsync. Does not support wildcards. If filename does not contain path separator, the filelist is expected to be located inside ``rqdir/filelists``. Otherwise the provided path is used to read the filelist.
|
||||||
* **log_files**
|
* **log_files**
|
||||||
** **path** - base path to scan for logs
|
* **path** - base path to scan for logs
|
||||||
** **include** - regexp string to match log files against for inclusion (if not set = include all)
|
* **include** - regexp string to match log files against for inclusion (if not set = include all)
|
||||||
** **exclude** - regexp string to match log files against. Excludes matched files from collection.
|
* **exclude** - regexp string to match log files against. Excludes matched files from collection.
|
||||||
** **start** - date or datetime string to collect only files modified on or after the specified time. Format - ``YYYY-MM-DD`` or ``YYYY-MM-DD HH:MM:SS``
|
* **start** - date or datetime string to collect only files modified on or after the specified time. Format - ``YYYY-MM-DD`` or ``YYYY-MM-DD HH:MM:SS``
|
||||||
|
|
||||||
===============
|
===============
|
||||||
Filtering nodes
|
Filtering nodes
|
||||||
@ -77,7 +78,7 @@ It is possible to define special **by_<parameter-name>** dicts in config to (re)
|
|||||||
|
|
||||||
In this example for any controller node, cmds setting will be reset to the value above. For nodes without controller role, default (none) values will be used.
|
In this example for any controller node, cmds setting will be reset to the value above. For nodes without controller role, default (none) values will be used.
|
||||||
|
|
||||||
It is also possible to define a special **once_by_<parameter-name>** which work similarly to the above, but will only assign attributes to single matching node. Example:
|
It is also possible to define a special **once_by_<parameter-name>** which works similarly, but will only result in attributes being assigned to single (first in the list) matching node. Example:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@ -85,7 +86,7 @@ It is also possible to define a special **once_by_<parameter-name>** which work
|
|||||||
controller:
|
controller:
|
||||||
cmds: {'check-uptime': 'uptime'}
|
cmds: {'check-uptime': 'uptime'}
|
||||||
|
|
||||||
Such configuration will result in `uptime` being executed on only one node with controller role, not on every such node.
|
Such configuration will result in `uptime` being executed on only one node with controller role, not on every controller.
|
||||||
|
|
||||||
=============
|
=============
|
||||||
rqfile format
|
rqfile format
|
||||||
@ -118,13 +119,14 @@ Configuration application order
|
|||||||
===============================
|
===============================
|
||||||
|
|
||||||
Configuration is assembled and applied in a specific order:
|
Configuration is assembled and applied in a specific order:
|
||||||
|
|
||||||
1. default configuration is initialized. See ``timmy/conf.py`` for details.
|
1. default configuration is initialized. See ``timmy/conf.py`` for details.
|
||||||
2. command line parameters, if defined, are used to modify the configuration.
|
2. command line parameters, if defined, are used to modify the configuration.
|
||||||
3. **rqfile**, if defined (default - ``rq.yaml``), is converted and injected into the configuration. At this stage the configuration is in its final form.
|
3. **rqfile**, if defined (default - ``rq.yaml``), is converted and injected into the configuration. At this stage the configuration is in its final form.
|
||||||
4. for every node, configuration is applied, except ``once_by_`` directives:
|
4. for every node, configuration is applied, except ``once_by_`` directives:
|
||||||
4.1 first the top-level attributes are set
|
1. first the top-level attributes are set
|
||||||
4.2 then ``by_<attribute-name>`` parameters except ``by_id`` are iterated to override or append(accumulate) the attributes
|
2. then ``by_<attribute-name>`` parameters except ``by_id`` are iterated to override or append(accumulate) the attributes
|
||||||
4.3 then ``by_id`` is iterated to override any matching attributes, redefining what was set before
|
3. then ``by_id`` is iterated to override any matching attributes, redefining what was set before
|
||||||
5. finally ``once_by_`<attribute-name>`` parameters are applied - only for one matching node for any set of matching values. This is useful for example if you want a specific file or command from only a single node matching a specific role, like running ``nova list`` only on one controller.
|
5. finally ``once_by_`<attribute-name>`` parameters are applied - only for one matching node for any set of matching values. This is useful for example if you want a specific file or command from only a single node matching a specific role, like running ``nova list`` only on one controller.
|
||||||
|
|
||||||
Once you are done with the configuration, you might want to familiarize yourself with :doc:`Usage </usage>`.
|
Once you are done with the configuration, you might want to familiarize yourself with :doc:`Usage </usage>`.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user