Collect and collate custom facts about this machine's AIX NIM configuration

Christopher Petersen



1,231 latest version

4.6 quality score

Version information

  • 0.3.2 (latest)
  • 0.3.1
  • 0.3.0
released Oct 15th 2019
This version is compatible with:
  • AIX

Start using this module


cryssoft/aix_nim_facts — version 0.3.2 Oct 15th 2019


Table of Contents

  1. Description
  2. Setup - The basics of getting started with aix_nim_facts
  3. Usage - Configuration options and additional functionality
  4. Reference - An under-the-hood peek at what the module is doing and how
  5. Limitations - OS compatibility, etc.
  6. Development - Guide for contributing to the module


The cryssoft-aix_nim_facts module populates the $::facts['aix_nim'] hash with a few values that are of interest if you're using Puppet to manage AIX Network Install Manager (NIM) servers and clients. The $::facts['aix_nim']['is_master'] fact is one way to make package resources safe to install with the "nim" vs. "aix" provider regardless of whether the rule is operating on a NIM client or server.


Put the module in place in your Puppet master server as usual. AIX-based systems will start populating the $::facts['aix_nim'] hash with their next run, and you can start referencing those facts in your classes.

What aix_nim_facts affects

At this time, the cryssoft-aix_nim_facts module ONLY supplies custom facts. It does not change anything and should have no side-effects.

Setup Requirements

As a custom facts module, I believe pluginsync must be enabled for this to work.

Beginning with aix_nim_facts

If you're using Puppet Enterprise, the new fact(s) will show up in the PE console for each AIX-based node under management. If you're not using Puppet Enterprise, you'll need to use a different approach to checking for their existence and values.


As notes, cryssoft-aix_nim_facts is only providing custom facts. Once the module and its Ruby payload are distributed to your AIX-based nodes, those facts will be available in your classes.


$::facts['aix_nim'] is the top of a small hash. The data it contains is based on what's in the /etc/niminfo file (client and server) as well as some "lsnim" outputs for the server.


This should work on any AIX-based system.

NOTE: This module has been tested on AIX 6.1, 7.1, and 7.2 NIM clients and 7.2 NIM servers. It does not appear to have any side effects. The "lsnim" commands that run on NIM servers do add a little overhead to the fact gathering process for each puppet agent run.


Make suggestions. Look at the code on github. Send updates or outputs. I don't have a specific set of rules for contributors at this point.

Release Notes/Contributors/Etc.

Starting with 0.3.0 - Pretty simple stuff. Not sure if this will ever morph into a control/configuration module with types/providers/etc. to actually do anything meaningful about controlling NIM clients/servers. I'm not even sure that would be a good idea.