opConfig and opEvents provide a number of different methods for managing nodes, both GUI-based and commandline-oriented. This document describes the commandline tool
opnode_admin tool is installed by default as
/usr/local/omk/bin/opnode_admin.pl. It is scriptable and pipelineable, and can perform all node-related operations: creation, updating, renaming, exporting and deletion of nodes.
Run the tool with no options or -? or -h and it'll display a simple help page:
Node Listing, Viewing and Exporting
Given the argument
opnode_admin will print a list of all known node names.
Version 2.70.0 onwards prints its two lines of header only when displaying to a terminal; with older versions you'll have to exclude these lines if you want to reuse the data.
To save a node's config information, run
admin/opnode_admin.pl act=export node=somenodename, and it'll print the node's configuration in JSON format to your console. If you want to save that data in a file, either add the argument
file=somefilename.json. Here is an example of what to expect:
To see a node's properties in a relatively human-friendly form you should use
act=show; it'll present the properties in a 'dotted-path' notation, like this:
Exporting all of a node's configuration (in JSON format) works like this, if you don't specify an output file to save the data in:
opnode_admin does not just export node data, but also consumes it for modifying a node in place and for creation of new nodes. There are two modification operations:
act=setworks best for adjusting a few individual properties.
Its advantage is that doesn't require a full export of the node data.
act=updateworks best for big modifications, and expects you to supply a complete node config in JSON format.
Relative updates, changing just a few properties
For example, to change a node's opConfig activation field to false (so that opConfig does not attempt to communicate with the node) you'd certainly use
act=set, like this:
Any number of arguments of the form
entry.<propertypath>=<somevalue> can be given, and all identified properties will be updated in one operation.
Please note that you cannot set authentication-related sensitive properties (like the snmp community, for example) using
opnode_admin act=set; these are ignored and a warning is shown.
Absolute updates, setting all properties
To change all of a node's configuration (except node renaming!), simply dump the node configuration with
act=export, then edit the exported data suitably and finally perform the change with
act=update and the exported data as input. Both operation require that you give the node name in question, and both work either from files (with a
file=somefile.json argument), or via STDOUT/STDIN/pipeline.
For example, this pipelined invocation would change a node's misspelled group property:
You can also explicitely pass the argument
file=- to indicate that STDOUT should be used for export or STDIN be used for update/creation. Please note that the
act=update operation doesn't create new nodes or rename noes, and that it replaces the whole set of node configuration settings with your new configuration input.
Creation of Nodes
Node creation is triggered by the argument
act=create, which behaves mostly like
act=update, except that it doesn't touch existing nodes. To help you with starting a node configuration document from scratch (or in a scripted fashion), there is another command,
act=mktemplate, which prints a blank but documented template which you can save and fill in. If you add
placeholder=1 to the command line, then
opnode_admin fills the template with easily matchable replacement placeholders, like so:
This makes it very easy to fill in the template with a script or some other external tool.
To rename nodes you should use
act=rename which requires both old and new node names with arguments
new, respectively. This operation first changes the configured node name, and then adjusts most database entries related to the node in question:
- If opEvents is installed and licensed, all existing events for the renamed node will be rewritten to refer to the new node name.
- if opConfig is installed and licensed, then all existing command outputs for the renamed node will be updated to refer to the new node name.
To remove a node (but not its historic data) simply run
opnode_admin with the argument
act=delete node=ripnode, plus the option
confirm=YES (must be uppercase) to make opnode_admin actually perform the deletion.
This removes only the node configuration information but not existing opEvents or opConfig data for the node.To delete these as well, you can add the option
deletedata=1 to the command, and all data related to this node will be removed permanently.