Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Rex::CMDB(3)	      User Contributed Perl Documentation	  Rex::CMDB(3)

NAME
       Rex::CMDB - Function to access the CMDB (configuration management
       database)

DESCRIPTION
       This module exports a function to access	a CMDB via a common interface.

SYNOPSIS
	use Rex::CMDB;

	set cmdb => {
	    type => 'YAML',
	    path => [
		'cmdb/{hostname}.yml',
		'cmdb/default.yml',
	    ],
	    merge_behavior => 'LEFT_PRECEDENT',
	};

	task "prepare",	"server1", sub {
	  my $virtual_host = get cmdb("vhost");
	  my %all_information =	get cmdb;
	};

EXPORTED FUNCTIONS
   set cmdb
       CMDB is enabled by default, with	Rex::CMDB::YAML	as default provider.

       The path	option specifies an ordered list of places to look for CMDB
       information. The	path specification supports any	Rex::Hardware variable
       as macros, when enclosed	within curly braces. Macros are	dynamically
       expanded	during runtime.	The default path settings is:

	[qw(
	    cmdb/{operatingsystem}/{hostname}.yml
	    cmdb/{operatingsystem}/default.yml
	    cmdb/{environment}/{hostname}.yml
	    cmdb/{environment}/default.yml
	    cmdb/{hostname}.yml
	    cmdb/default.yml
	)]

       Please note that	the default environment	is, well, "default".

       You can define additional CMDB paths via	the `-O` command line option
       by using	a semicolon-separated list of `cmdb_path=path` key-value
       pairs:

	rex -O 'cmdb_path=cmdb/{domain}.yml;cmdb_path=cmdb/{domain}/{hostname}.yml;' taskname

       Those additional	paths will be prepended	to the current list of CMDB
       paths (so the last one specified	will get on top, and thus checked
       first).

       The CMDB	module looks up	the specified files in order and then returns
       the requested data. If multiple files specify the same data for a given
       case, then the first instance of	the data will be returned by default.

       Rex uses	Hash::Merge internally to merge	the data found on different
       levels of the CMDB hierarchy. Any merge strategy	supported by that
       module can be specified to override the default one. For	example	one of
       the built-in strategies:

	merge_behavior => 'LEFT_PRECEDENT'

       Or even custom ones:

	merge_behavior => {
	    SCALAR => {	... },
	    ARRAY  => {	... },
	    HASH   => {	... },
	}

       For full	list of	options, please	see the	documentation of Hash::Merge.

   cmdb([$item,	$server])
       Function	to query a CMDB. If this function is called without $item it
       should return a hash containing all the information for the requested
       server. If $item	is given it should return only the value for $item.

	task "prepare",	"server1", sub {
	  my $virtual_host = get cmdb("vhost");
	  my %all_information =	get cmdb;
	};

perl v5.32.0			  2020-08-05			  Rex::CMDB(3)

NAME | DESCRIPTION | SYNOPSIS | EXPORTED FUNCTIONS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Rex::CMDB&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help