Overview
One OpenVox server goes a long way, but it compiles every catalog itself, and sooner or later it can’t keep up. The answer is more servers: a main server that runs the certificate authority (CA), and compilers beside it that share the work of compiling catalogs. That leaves you two jobs: installing those servers, and getting the same version of your code onto all of them.
This guide does both, step by step, with two tools. ovadm installs the servers from your workstation. codavox gets your code onto every server and records in each catalog which version it was built from. In between, a few Puppet modules keep everything configured.
The guide starts where Deploying Code ends: you know what a control repository is, and r10k has deployed one to a server.
What you’ll build:
- A main server with a long-lived CA, and a compiler that trusts it, installed from your workstation with ovadm
- Both servers configured by Puppet from then on
- Each server sized for its hardware
- The same version of your code on every server with codavox, each catalog recording which version it was built from
- Agents, added with ovadm, that get their catalogs from the compiler and run Puppet on a schedule
- The routine after that: deploys, status, upgrades, and adding a compiler later
Each step has a short recording of its commands running on fresh machines.
The machines
| Machine | Role | Size in the recordings |
|---|---|---|
| Your workstation | Runs OpenBolt, which installs everything over SSH | Your laptop |
puppet.example.com |
Main server: the CA, compiles catalogs, hands code to the compilers | 4 CPUs, 8 GB |
compiler01.example.com |
Compiler: compiles catalogs for agents | 8 CPUs, 16 GB |
agent01.example.com |
A node you manage | 2 CPUs, 4 GB |
Prerequisites
Before you start, you’ll need:
- Three Linux machines with nothing installed. The recordings use AlmaLinux 10 for the servers and AlmaLinux 9 for the agent, the only platforms this guide has been tested on so far; ovadm itself also supports several others.
- SSH from your workstation to each machine, as root or as a user who can use
sudo - Names that resolve on every machine, such as
puppet.example.com - A control repository made from the OpenVox control repository template, on a git server the main server can reach
- OpenBolt on your workstation
The tools
- ovadm, an OpenBolt module, installs the servers and adds agents, then gets out of the way.
- openvox_server, openvox_tune and openvox_agent keep the servers and agents configured with Puppet. You can use your own code instead.
- codavox gets the same version of your code onto every server.
All of them are young, at version 0, and have so far run only on test machines like the ones in the recordings.