Forge Home

dynaml

A Bolt inventory plugin which resolves complex values with ERB and external data

347 downloads

323 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.2.0 (deleted)
  • 0.1.0 (latest)
released Nov 29th 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, 2016.4.x
  • Puppet >= 4.10.0 < 8.0.0
  • , , , , ,

Start using this module

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

Add this module to your Puppetfile:

mod 'h0tw1r3-dynaml', '0.1.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add h0tw1r3-dynaml
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install h0tw1r3-dynaml --version 0.1.0

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.

Download

Documentation

h0tw1r3/dynaml — version 0.1.0 Nov 29th 2022

Bolt Dynaml plugin

This module provides a Bolt inventory plugin for resolving values with ERB and optionally merging external data.

Table of Contents

  1. Usage
  2. Examples

Usage

The plugin supports two parameters. Choose either or both. If both are provided, the plugin will merge or replace value with the value of merge.key in merge.file.

  • value: A string or structure of values to parse with erb
  • merge: (optional)
    • file: yaml file to load, defaults to override.yaml
    • key: key in the file to merge with the optional value parameter

merge.file variables can be referenced by inline erb using the builtin variable @dynaml. Key names are symbols.

Examples

version: 2
targets:
  - _plugin: puppetdb
    query:
      _plugin: dynaml
      value: "nodes[certname] { report_timestamp<'<%= (Time.now.utc - 1*60).strftime('%FT%T.%LZ') %>' }"
  - _plugin: dynaml
    value:
      pm_api_url: "https://<%= @dynaml[:proxmox][:host] %>/api2/json"
config:
  _plugin: dynaml
  merge:
    file: custom.yaml
    key: config
  value:
    ssh:
      user: root
      host-key-check: false
      private-key: "<%= opts[:_boltdir] %>/private_key.pem"