- puppet-intermapper
The puppet-intermapper module manages the InterMapper network monitoring application by Fortra. This module handles installation, configuration, and management of InterMapper services, along with integration capabilities for Nagios plugins.
- Complete InterMapper lifecycle management: Install, configure, and manage InterMapper services
- APT repository support: Automatic management of official InterMapper repository on Debian/Ubuntu systems
- Multi-service support: Manage main InterMapper service plus optional DataCenter and Flows services
- Nagios integration: Symlink Nagios plugins into InterMapper Tools directory
- Extensible configuration: Support for custom probes, icons, MIB files, and tools
- Modern Puppet practices: Uses Hiera data hierarchy, proper data types, and current best practices
- Comprehensive testing: 100% test coverage with automated validation
- Puppet: 6.21.0 or later
- Operating Systems:
- RedHat Enterprise Linux 7, 8, 9
- CentOS 7, 8
- Rocky Linux 8, 9
- AlmaLinux 8, 9
- Debian 9, 10, 11, 12
- Ubuntu 18.04, 20.04, 22.04, 24.04
Install the module from Puppet Forge:
puppet module install UCSDANF-intermapper
Or add to your Puppetfile:
mod 'UCSDANF-intermapper', '2.0.0'
Simple installation with default settings:
include intermapper
Enable automatic management of the official InterMapper APT repository:
class { 'intermapper':
repo_manage => true,
}
This will:
- Add the official InterMapper repository to your APT sources
- Import the GPG signing key
- Install InterMapper from the repository using the modern directory structure
- Keep the package updated when
package_ensure => 'latest'
Note: InterMapper 6.6+ uses updated default directories on modern Linux systems:
- Program files:
/opt/helpsystems/intermapper
(was/usr/local
) - Data files:
/var/opt/helpsystems/intermapper
(was/var/local
) - Settings:
/var/opt/helpsystems/intermapper/InterMapper_Settings
This applies to RedHat, CentOS, Rocky Linux, AlmaLinux, Debian, and Ubuntu systems.
Full configuration example:
class { 'intermapper':
package_ensure => 'latest',
package_name => 'intermapper',
service_ensure => 'running',
service_imdc_manage => true,
service_imdc_ensure => 'running',
service_imflows_manage => true,
service_imflows_ensure => 'running',
nagios_manage => true,
nagios_plugins_dir => '/usr/lib64/nagios-plugins',
nagios_link_plugins => [
'check_nrpe',
'check_disk',
'check_load',
'check_procs',
],
}
For Debian/Ubuntu systems with automatic updates:
class { 'intermapper':
repo_manage => true,
package_ensure => 'latest',
service_ensure => 'running',
}
Enable Nagios plugin integration:
class { 'intermapper':
nagios_manage => true,
nagios_plugins_dir => '/usr/lib64/nagios-plugins',
nagios_link_plugins => [
'check_nrpe',
'check_disk',
'check_file_age',
'check_procs',
'check_snmp',
],
}
This creates symlinks in /var/local/InterMapper_Settings/Tools/
pointing to
the specified Nagios plugins, making them available for use in InterMapper
probe definitions.
Configure via Hiera data:
# data/common.yaml
intermapper::package_ensure: 'present'
intermapper::service_ensure: 'running'
intermapper::nagios_manage: true
intermapper::nagios_plugins_dir: '/usr/lib64/nagios-plugins'
intermapper::nagios_link_plugins:
- 'check_nrpe'
- 'check_disk'
- 'check_file_age'
- 'check_procs'
- 'check_snmp'
The module provides defined types for managing InterMapper components:
intermapper::probe { 'custom-probe':
ensure => 'present',
content => template('mymodule/custom-probe.tmpl'),
}
intermapper::mibfile { 'custom.mib':
ensure => 'present',
source => 'puppet:///modules/mymodule/custom.mib',
}
intermapper::tool { 'custom-tool':
ensure => 'present',
source => 'puppet:///modules/mymodule/custom-tool.sh',
mode => '0755',
}
Main class for managing InterMapper.
Parameters:
package_name
(Variant[String[1], Array[String[1]]]): Package name(s) to installservice_name
(String[1]): Name of the main InterMapper servicenagios_link_plugins
(Array[String[1]]): List of Nagios plugins to symlinkbasedir
(Stdlib::Absolutepath): InterMapper installation directory (default: '/usr/local')vardir
(Stdlib::Absolutepath): InterMapper data directory (default: '/var/local')package_ensure
(String[1]): Package ensure state (default: 'present')package_manage
(Boolean): Whether to manage the package (default: true)service_ensure
(Stdlib::Ensure::Service): Service ensure state (default: 'running')service_manage
(Boolean): Whether to manage services (default: true)nagios_manage
(Boolean): Whether to manage Nagios integration (default: false)nagios_plugins_dir
(Optional[Stdlib::Absolutepath]): Path to Nagios plugins directoryrepo_manage
(Boolean): Whether to manage the InterMapper repository (default: false)repo_ensure
(Enum['present', 'absent']): Repository ensure state (default: 'present')repo_url
(Stdlib::HTTPUrl): Repository URL (default: official InterMapper repository)repo_key
(Optional[String[1]]): GPG key ID for the repositoryrepo_key_source
(Optional[Stdlib::HTTPUrl]): URL to fetch GPG key fromrepo_release
(String[1]): Repository release (default: '/')repo_repos
(String[1]): Repository components (default: 'main')
For complete parameter documentation, see the generated reference documentation.
intermapper::probe
: Manage InterMapper probe definitionsintermapper::mibfile
: Manage SNMP MIB filesintermapper::tool
: Manage InterMapper toolsintermapper::icon
: Manage custom iconsintermapper::nagios_plugin_link
: Create symlinks to Nagios plugins (private)
All defined types are documented with Puppet Strings. Generate documentation with:
puppet strings generate --format markdown
- This module is designed for and tested on RedHat-family and Debian-family operating systems
- InterMapper package must be available in configured repositories or via repository management
- Repository management only supported on Debian/Ubuntu systems
- Nagios integration requires Nagios plugins to be installed separately
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Puppet Development Kit (PDK) 3.4.0 or later
- Git
# Install dependencies
pdk bundle install
# Run unit tests
pdk test unit
# Run validation
pdk validate
# Run all tests
pdk test unit && pdk validate
Generate reference documentation:
puppet strings generate --format markdown
See CHANGELOG.md for detailed release notes.
This is a major release with breaking changes:
- Breaking: Dropped support for Solaris
- Breaking: Removed deprecated
params.pp
pattern - New: Modern Hiera data hierarchy
- New: Comprehensive Puppet Strings documentation
- New: Proper data types throughout
- Improved: Modern class containment patterns
- Improved: 100% test coverage maintained
For migration guidance from 1.x, see CHANGELOG.md.
- Issues: GitHub Issues
- Source: GitHub Repository
BSD 2-Clause License. See LICENSE file for details.
Maintained by: The Regents of the University Of California
Author: Geoff Davis