Installing OpenVox Edit

OpenVox package downloads are currently sponsored by Overlook InfraTech. As of release 8.11, OpenVox is functionally equivalent to Puppet; the command names are the same, the configuration file paths are the same, etc. The major differences are in help text output, man pages, and so on. This means that you can continue to use all the commands, modules, tooling, etc that you’re used to, but at this time you cannot install both Puppet and OpenVox on the same system.

🔔 Tip: If you want to use Puppet code to manage your systems, if you have strange dependencies, if you’re migrating from Puppet Enterprise, or if you have Puppet modules installed as system packages then see the advanced options sections below.

We encourage you to try out OpenVox on a fresh test system, the way you would for any major system package. If you’d rather try it on an existing system or develop a migration process, then the new OpenVox packages will uninstall and replace the existing legacy Puppet packages.

You do not need to purge configuration files because OpenVox will continue to use them as they are. However, before getting started on the migration you should strongly consider backing up the entire /etc/puppetlabs/ tree in case of accidents.

First enable the repository, based on your Linux distribution. Choose the appropriate openvox8-release repo package from either of these locations and install it.

(There are experimental builds for Windows at artifacts.voxpupuli.org/downloads/, and stable macOS builds at downloads.voxpupuli.org/mac)

Then install the packages you want.

If you have backed up config files, then restore them now.

🎉 That’s it! You’re done!

Feel free to read the rest of the page for more options.


Advanced Options

Alternative Puppet uninstallation options

There are some cases in which you might have to take more steps to safely remove legacy Puppet from your system.

You do not need to remove the [apt|yum].puppet.com repositories although the only thing you’ll be able to use them for going forward is installing historical Puppet releases.

Managing OpenVox with OpenVox

Managing Repositories

You can add the APT or YUM repositories with OpenVox - this should do the same thing as using the release packages:

include apt

$os_name = downcase($facts['os']['name'])
apt::source { 'openvox8-release':
  comment  => "OpenVox 8 ${os_name}${facts['os']['release']['major']} Repository",
  location => 'https://apt.voxpupuli.org',
  release  => "${os_name}${facts['os']['release']['major']}",
  repos    => 'openvox8',
  key      => {
    'name'   => 'openvox-keyring.gpg',
    'source' => 'https://apt.voxpupuli.org/openvox-keyring.gpg',
  },
}
include yum
$release=8
$os_name = $facts['os']['name'] ? {
  "Fedora" => "fedora",
  "Amazon" => "amazon"
  default  => "el",
}

yum::install { "openvox${release}-release":
  ensure => 'present',
  source => "https://yum.voxpupuli.org/openvox${release}-release-${os_name}-${facts['os']['release']['major']}.noarch.rpm"
}

Managing the Server/Client

You can manage OpenVox with several existing modules:

These modules currently default to installing packages named puppet*, so they will cause openvox* packages to be removed.

To install OpenVox, you can use this hiera data:

puppet::client_package: openvox-agent
puppet::server::package: openvox-server
puppetdb::puppetdb_package: openvoxdb
puppetdb::master::config::terminus_package: openvoxdb-termini

Note that you will need to have the OpenVox repositories available (using one of the methods above) for this to work properly. If the OpenVox repositories are available, this will cause Puppet to be removed and OpenVox to be installed.

Foreman integration

Foreman installs the package puppet-agent-oauth which is a system packaged Ruby gem with native code. It provides the oauth gem for the Puppet Agent Ruby environment and depends on puppet-agent. The OpenVox packages don’t have a provides puppet-agent flag yet, so this will cause dependency errors. As a workaround you’ll need to manage the gem directly instead of letting the Foreman module handle it. Note that this will require build essentials and ruby development packages.

Add this to your Hiera config:

---
foreman::providers::oauth: false

And then manage the gem directly in Puppet code:

package { 'oauth':
  ensure   => 'installed',
  provider => 'puppet_gem',
}

Sponsorship

Many thanks to Lance and the OSU Open Source Lab. They do so much for the open source world and deserve far far more recognition for it.