Forge Home


An Oracle inventory parser that creates inventory-based facts, and a class that manages the inventory pointer file.


296 latest version

5.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.6.7 (latest)
  • 0.6.6
  • 0.6.5
  • 0.6.4
  • 0.6.3
  • 0.6.2
  • 0.6.1
  • 0.6.0
  • 0.5.5
  • 0.5.4
  • 0.5.3
  • 0.5.2 (deleted)
  • 0.5.1
  • 0.5.0
  • 0.4.9
  • 0.4.8
  • 0.4.7
  • 0.4.6
  • 0.4.5
  • 0.4.3
  • 0.4.2
  • 0.4.1
  • 0.4.0
  • 0.3.0
released Oct 25th 2022
This version is compatible with:
  • Puppet Enterprise 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
  • Puppet >= 4.3.0 < 8.0.0
  • , , , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'zerodecimal-oracle_inventory', '0.6.7'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add zerodecimal-oracle_inventory
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install zerodecimal-oracle_inventory --version 0.6.7

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



zerodecimal/oracle_inventory — version 0.6.7 Oct 25th 2022


License Build Status

Table of Contents

  1. Description
  2. Setup - The basics of getting started with oracle_inventory
  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


This module provides an Oracle inventory parser that produces a set of facts showing what Oracle products are installed on your system. For non-Windows servers, it also includes a class to manage the contents of the inventory pointer file.

The inventory parser begins with the central inventory XML file, then inspects all installed (not removed) homes referenced therein. If there is a product installed in a home that matches a known component ID (see Reference section below), a fact is created with that home location, version, and install date/time. In the case of CRS and Database homes, PSU (patch set update) versions and install date/times are included.

These facts can be useful in configuring servers with Oracle products installed. For example, when the Puppet agent runs after a database home is installed, a fact called "oracle_db_home" is created and can then be used to set the oracle user's environment.

The facts can also be useful for inventory reports. For example, to see the latest patch set update (PSU) applied to all the databases in an environment.

Puppet version 4.3 is required because this module makes use of features such as strong data typing.


Install the oracle_inventory module to add the facts and classes to your environment.

What oracle_inventory affects

Agent nodes will need to be able to install the xml-simple Ruby gem using the puppet_gem provider. The ensure_packages function is used for this, to give users the freedom to manage this package resource in another module.

If you wish to avoid the xml-simple requirement, there is a REXML version of the fact script under examples. Feel free to pull it out and put it under some other module. It produces the same output but takes a little bit longer to run.

Setup Requirements

puppetlabs/stdlib >= 4.13.1 < 7.0.0 is required.

Beginning with oracle_inventory

The module can simply be installed with a Puppetfile entry and the facts will be available (as long as the xml-simple gem is installed). To manage the inventory pointer file, include the oracle_inventory class in some profile manifest. To accept the default parameters:

include ::oracle_inventory


To manage the Oracle inventory pointer file with non-default parameters, declare the class in this format:

class { '::oracle_inventory':
  file_owner    => 'oracle',
  file_group    => 'oinstall',
  inventory_dir => '/home/oracle/oraInventory',

To install the xml-simple gem and use the facts, but not manage the Oracle inventory pointer file, declare the class as such:

class { '::oracle_inventory':
  manage_pointer => false,




Description: Central inventory pointer file location

Datatype: String


Description: Central inventory file location

Datatype: String


Description: CRS home information, including ASM ORACLE_SID from oratab

Datatype: Hash


Description: List of RAC cluster nodes

Datatype: Array


Description: Single Client Access Name for RAC clusters

Datatype: String


Description: Database home information, including ORACLE_SID(s) from oratab

Datatype: Hash


Description: OMS (Enterprise Manager) home information

Datatype: Hash


Description: Enterprise Manager Agent home information

Datatype: Hash


Description: EBS application (Fusion Middleware) home information

Datatype: Hash


Description: Endeca home information

Datatype: Hash


Description: WebLogic home information

Datatype: Hash


Description: Database Client home information

Datatype: Hash


Supported Operating Systems

  • RedHat
  • CentOS
  • Oracle Linux
  • Scientific Linux
  • Windows

Supported Oracle versions

The included facts are known to work on the following Oracle software versions. They have not been tested against any others.

  • CRS: 11g, 12cR1, 12cR2, 18c, 19c
  • Database: 11g, 12cR1, 12cR2, 18c, 19c
  • Database Client: 11g, 12c, 19c
  • Enterprise Manager (OMS and Agent): 12c, 13c
  • E-Business Suite: 12.2 (when there is a single pointer file and central inventory)
  • WebLogic: 11g, 12c


Contributions are always welcome - please submit a pull request or issue on GitHub.


The list of contributors can be found at: