Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .fixtures.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ fixtures:
extlib: 'https://github.com/voxpupuli/puppet-extlib.git'
git: 'https://github.com/theforeman/puppet-git.git'
inifile: 'https://github.com/puppetlabs/puppetlabs-inifile.git'
puppetdb: 'https://github.com/puppetlabs/puppetlabs-puppetdb.git'
openvoxdb: 'https://github.com/voxpupuli/puppet-openvoxdb.git'
puppetserver_foreman: 'https://github.com/theforeman/puppet-puppetserver_foreman.git'
stdlib: 'https://github.com/puppetlabs/puppetlabs-stdlib.git'
systemd: 'https://github.com/voxpupuli/puppet-systemd.git'
Expand Down
26 changes: 13 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ Then the `foreman_ssl_{ca,cert,key}` parameters are ignored and `certs::puppet`

## PuppetDB integration

The Puppet server can be configured to export catalogs and reports to a PuppetDB instance, using the puppetlabs/puppetdb module.
Use its `puppetdb::server` class to install the PuppetDB server and this module to configure the Puppet server to connect to PuppetDB.
The OpenVox-Server can be configured to export catalogs and reports to a OpenVoxDB instance, using the [puppet/openboxdb](https://forge.puppet.com/modules/puppet/openvoxdb/readme) module.
Use its `openvoxdb::server` class to install the OpenVoxDB server and this module to configure the OpenVox-Server to connect to OpenVoxDB.

Requires [puppetlabs/puppetdb](https://forge.puppetlabs.com/puppetlabs/puppetdb)
**OpenVoxDB is the Open-Source PuppetDB successor, so some places still reference puppetdb**

```puppet
class { 'puppet':
Expand All @@ -72,23 +72,23 @@ class { 'puppet::server::puppetdb':
}
```

Above example manages Puppetserver + PuppetDB integration.
It won't install the PuppetDB.
To do so, you also need the `puppetdb` class
Above example manages Puppetserver + OpenVoxDB integration.
It won't install the OpenVoxDB.
To do so, you also need the `openvoxdb` module

```puppet
class { 'puppet':
server => true,
server_reports => 'puppetdb,foreman',
server_storeconfigs => true,
}
include puppetdb
include openvoxdb
class { 'puppet::server::puppetdb':
server => 'mypuppetdb.example.com',
server => 'myopenvoxdb.example.com',
}
```

Then the PuppetDB module will also configure postgresql and setup the database.
Then the OpenVoxDB module will also configure postgresql and setup the database.
If you want to manage postgresql installation on your own:

```puppet
Expand All @@ -106,23 +106,23 @@ postgresql::server::extension { 'pg_trgm':
require => Postgresql::Server::Db['puppetdb'],
before => Service['puppetdb'],
}
class { 'puppetdb':
class { 'openvoxdb':
manage_dbserver => false,
}
class { 'puppet::server::puppetdb':
server => 'mypuppetdb.example.com',
server => 'myopenvoxdb.example.com',
}
```

Above code will install Puppetserver/PuppetDB/PostgreSQL on a single server.
It will use the upstream postgresql repositories.
It was tested on Ubuntu.

Please also make sure your puppetdb ciphers are compatible with your puppet server ciphers, ie that the two following parameters match:
Please also make sure your OpenVoxDB ciphers are compatible with your puppet server ciphers, ie that the two following parameters match:

```
puppet::server::cipher_suites
puppetdb::server::cipher_suites
openvoxdb::server::cipher_suites
```

By default, the Perforce packages are used.
Expand Down
8 changes: 4 additions & 4 deletions manifests/server/puppetdb.pp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# @summary PuppetDB integration
#
# This class relies on the puppetlabs/puppetdb and essentially wraps
# puppetdb::master::config with the proper resource chaining.
# This class relies on the puppet/openvoxdb and essentially wraps
# openvoxdb::master::config with the proper resource chaining.
#
# Note that this doesn't manage the server itself.
#
Expand Down Expand Up @@ -33,13 +33,13 @@
Boolean $soft_write_failure = false,
Optional[String[1]] $terminus_package = undef,
) {
class { 'puppetdb::master::config':
class { 'openvoxdb::master::config':

@bastelfreak bastelfreak Apr 3, 2026 •

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or we duplicate the class into puppet::server::openvoxdb? 🤔 Or call puppetdb::master::config vs openvoxdb::master::config depending on if we have puppetdb vs openvoxdb modules in our environment?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you asking because:

  • Preventing users from having to update their puppet code due to openvox support?
  • Expecting there may be differences between openvox and puppet that require separate implementations?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't expect a different implementation. But I don't know your support policy. Do you want to keep puppet support and openvox in parallel? Can we drop puppet in favour of openvox?

puppetdb_server => $server,
puppetdb_port => $port,
puppetdb_soft_write_failure => $soft_write_failure,
manage_storeconfigs => false,
restart_puppet => false,
terminus_package => $terminus_package,
}
Class['puppetdb::master::puppetdb_conf'] ~> Class['puppet::server::service']
Class['openvoxdb::master::puppetdb_conf'] ~> Class['puppet::server::service']
}
4 changes: 2 additions & 2 deletions spec/classes/puppet_server_puppetdb_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ class { 'puppet':

it { is_expected.to compile.with_all_deps }
it { is_expected.to contain_puppet__config__server('storeconfigs').with_value(true) }
it 'configures PuppetDB' do
is_expected.to contain_class('puppetdb::master::config')
it 'configures OpenVoxDB' do
is_expected.to contain_class('openvoxdb::master::config')
.with_puppetdb_server('mypuppetdb.example.com')
.with_puppetdb_port(8081)
.with_puppetdb_soft_write_failure(false)
Expand Down
Loading