Skip to content

Advanced OpenVox

Welcome to Advanced OpenVox. This self-paced course builds on Using OpenVox and focuses on authoring high-quality modules: development tooling, advanced language features, data encryption, and testing.

As in the introductory course, OpenVox runs the Puppet language — the code and modules you write are Puppet code. OpenVox provides the platform, agent, server, and tooling.

Before you start

This course assumes you are comfortable with the material in Using OpenVox: resources, classes, modules, the Puppet language basics, Hiera, and the r10k/control-repo workflow. You will want a Linux machine with OpenVox installed where you can develop and test modules, plus git and a container runtime (Podman or Docker) for the testing exercises.

Learning objectives

After working through this course, you should be able to:

  • Install and use modern OpenVox module-development tooling (jig and voxbox)
  • Understand advanced Puppet language features — functions, iteration, lambdas, and templates
  • Encrypt sensitive Hiera data with hiera-eyaml
  • Develop module extensions: defined types, type aliases, custom facts, functions, types, providers, tasks, and plans
  • Write and run smoke, unit, and acceptance tests for your modules

Course outline

  1. Module Development Tooling
  2. Encrypting Hiera Data
  3. Templates
  4. Functions
  5. Module Development
  6. Testing
  7. Hands-On Exercise
  8. Where to Go Next

Try it yourself

Throughout the course you will see Try it yourself boxes with commands and exercises to run on your own machine. None require a classroom or shared lab environment.


This course was originally developed as an instructor-led "Advanced Puppet" course by Onyx Point, Inc. (Copyright 2018) and adapted for self-paced OpenVox use by Sicura, Inc. (Copyright 2026). It is licensed under CC BY-SA 4.0.