torrus_ttproclist8
Process a template with a nodelist
Usage
torrus ttproclist
--tmpl=TFILE
--out=OFILE
--nodes=NFILE
[options ...]
Overview
This command takes a Template-Toolkit template and a list of nodes (usually SNMP devices) as input. The output file is a result of template substitution, according to the specified options. Command-line options --tmpl, --out and --nodes are mandatory.
This utility can be used to generate the discovery instructions XML out of a predefined template and a dynamically generated list of devices. Alternatively, it can produce Torrus XML configuration for a given list of objects, etc.
The following variables are predefined when the template is processed:
- •
-
"nodes"Hash array of nodes. Hash keys are the node names. Values are symbolic names. If symbolic names are not defined, values are the same as keys.
- •
-
"param"Hash array of command-line parameters given in
--paramoption.
- •
-
"nodesfile","creator"Informative variables. They can be used to produce the creation note in the resulting files.
"nodesfile"returns the file name of nodes, and"creator"returns a detailed information how the file was generated, with timestamp and command line options.
Options
-
--tmpl=TFILE -
The file name of the input template. Relative names are looked in the current directory and in /etc/torrus/templates. The file name may also be an absolute path.
-
--out=OFILE -
Output file name. If no absolute path given, the file is written in the current directory.
-
--nodes=NFILE -
The name of the nodes list. Nodes should be separated by space or tab character or newline. Additional information, referred to as symbolic name, can be supplied after a colon, of the form NODENAME:SYMBOLICNAME.
-
--param=NAME:VALUE,NAME:VALUE... -
List of optional parameters that may be used in the template.
Examples
The following example gerenates "devdiscover" input file from a template. The template is as follows:
<?xml version="1.0" encoding="UTF8"?><snmp-discovery>>>> usual DDX parameters here, like SNMP community and data-dir<param name="snmp-community" value="private"/><param...>>> This loop generates per-host entries[% FOREACH n = nodes.keys.sort %]<host><param name="snmp-host" value="[% n %]"/><param name="symbolic-name" value="[% nodes.$n %]"/><param name="output-file" value="nodes/[% n %].xml"/></host>[% END %]>>> Generate the bundle file, so that you need only one>>> entry in torrus-site-config.pl<param name="output-bundle" value="[% param.BUNDLE %].xml"/></snmp-discovery>
The following command would generate MY.ddx from template file MY.ddtmpl as described above. The file MY.nodes is a list of SNMP devices, one per line. Then "devdiscover" is launched with MY.ddx as input. Note also the short form of the command line wrapper.
torrus ttproclist --tmpl=MY.ddtmpl \--nodes=MY.nodes \--out=/usr/local/etc/torrus/discovery/MY.ddx \--param=BUNDLE:MYNODEStorrus dd --in=MY.ddx --verbose
In addition, you may put some common parameters in Template BLOCK statement in a separate file, and INCLUDE it in your templates. See the Template-Toolkit documentation for more detail.
Notes
See more documentation at Torrus home page: http://torrus.org
Releases
10 releases since Debian 4.0 (Etch); the text changed 8 times.