Installing OpenVoxDB via Puppet module
You can install and configure all of OpenVoxDB’s components and prerequisites (including OpenVoxDB itself, PostgreSQL, firewall rules on RedHat-like systems, and the OpenVoxDB-termini for your Puppet Server) using the OpenVoxDB module from the Puppet Forge.
- If you are already familiar with Puppet and have a working Puppet deployment, this is the easiest method for installing OpenVoxDB. In this guide, we expect that you already know how to assign Puppet classes to nodes.
- If you are just getting started with Puppet, you may find it easier to follow our guide to installing OpenVoxDB from packages.
Step 1: Enable the Puppet Platform package repository
If you haven’t done so already, you will need to do one of the following:
- Enable the Puppet Platform package repository on your OpenVoxDB server and Puppet Server.
- If you don’t use the Puppet Platform repository, make the OpenVoxDB and OpenVoxDB-terminus packages available via your alternate installation strategy. For the module install to succeed a command like
yum install puppetdb, or the equivalent one that uses your system’s package manager, needs to be able to succeed.
Step 2: Assign classes to nodes
Using the normal methods for your site, assign the OpenVoxDB module’s classes to your servers. You have three main options for deploying OpenVoxDB:
- If you are installing OpenVoxDB on the same server as your Puppet Server, assign the
openvoxdbandopenvoxdb::master::configclasses to it. - If you want to run OpenVoxDB on its own server with a local PostgreSQL instance, assign the
openvoxdbclass to it, and assign theopenvoxdb::master::configclass to your Puppet Server. Make sure to set the class parameters as necessary. - If you want OpenVoxDB and PostgreSQL to each run on their own servers, assign the
openvoxdb::serverclass and theopenvoxdb::database::postgresqlclasses to different servers, and theopenvoxdb::master::configclass to your Puppet Server. Make sure to set the class parameters as necessary. You should also then enable an SSL connection between your PostgreSQL and OpenVoxDB’s servers, see the module documentation for how to configure SSL. This configuration will use the Puppet Agent certificates on both machines to authenticate and encrypt the database communication.
Note: By default, the module sets up the OpenVoxDB dashboard to be accessible only via localhost. If you’d like to allow access to the OpenVoxDB dashboard via an external network interface, set the
listen_address parameter on either of the openvoxdb or openvoxdb::server classes as follows:
class { 'openvoxdb':
listen_address => 'example.foo.com'
}
These classes automatically configure most aspects of OpenVoxDB. If you need to adjust additional settings (to change the node_ttl, for example), see the “Playing nice with the OpenVoxDB module”
section of the “Configuring OpenVoxDB” page.
For full details on how to use the module, see the OpenVoxDB module documentation on Puppet Forge. The module also includes some sample manifests in the tests directory that demonstrate its basic
usage.