DNS Setup

By default as per Puppet behaviour the Puppet Server, Puppet CA and Choria Brokers are all found on the name puppet. If you are doing a single node Broker installation on the Puppet Server called puppet you do not need to configure anything and can continue to the next page.

When not using puppet you can configure these settings manually but we strongly suggest you use SRV records if at all possible.

Choria Brokers

You can configure where your NATS brokers live using these SRV records:

_x-puppet-mcollective._tcp   IN  SRV 10  0 4222  nats1.example.net.
_x-puppet-mcollective._tcp   IN  SRV 11  0 4222  nats2.example.net.
_x-puppet-mcollective._tcp   IN  SRV 12  0 4222  nats3.example.net.

This means you have 3 of them and they all listen on port 4222.

Puppet and Puppet CA

If your Puppet CA, PuppetDB and Puppet Server are all on the same host, you can configure that all with a single SRV record that is compatible with Puppet SRV setup.

_x-puppet._tcp               IN  SRV 10  0 8140  puppet1.example.net.

But if you wish to split the CA and DB from the master add these:

_x-puppet-ca._tcp            IN  SRV 10  0 8140  puppetca1.example.net.
_x-puppet-db._tcp            IN  SRV 10  0 8081  puppetdb1.example.net.

Custom Domain

By default these SRV records will be looked for in your machine’s domain fact, but you can customize this by creating data in your Hiera:

  srv_domain: "prod.example.net"

Disabling SRV support

You might be in a situation where you have multiple environments like development and production in the same domain. You might want to use SRV for production but not for development.

  use_srv: false

Manual Config

If you have to you can configure these locations manually by creating Hiera data:


At the moment there is some redundancy and confusion between mcollective and choria modules, we will merge this into one soon but kept it this way to disrupt users as little as possible

  use_srv: false
  puppetserver_host: "puppet1.example.net"
  puppetserver_port: 8140
  puppetca_host: "ca1.example.net"
  puppetca_port: 8140
  puppetdb_host: "pdb1.example.net"
  puppetdb_port: 8081
  middleware_hosts: "choria1.example.net:4222,choria2.example.net:4222,choria3.example.net:4222"

You’ll also need to configure the server to connect to your specific middleware:

  plugin.choria.puppetserver_host: "puppet1.example.net"
  plugin.choria.puppetserver_port: 8140
  plugin.choria.puppetca_host: "ca1.example.net"
  plugin.choria.puppetca_port: 8140
  plugin.choria.puppetdb_host: "pdb1.example.net"
  plugin.choria.puppetdb_port: 8081
  plugin.choria.middleware_hosts: "choria1.example.net:4222,choria2.example.net:4222,choria3.example.net:4222"

To use Secure Websockets for communication if your broker is listening on WSS ports use plugin.choria.middleware_hosts: wss://choria1.example.net:433,wss://choria2.example.net:433.