Version information
This version is compatible with:
- Puppet Enterprise 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.4.x
- Puppet >= 4.9.0
- , , , , , , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'choria-choria', '0.7.0'
Learn more about managing modules with a PuppetfileDocumentation
choria/choria
A distribution of plugins for MCollective designed to create a production ready MCollective install in 30 minutes.
A main goal is ease of use and installation however a number of new end user features are added to MCollective while building on a the PuppetCA for security.
Includes:
- A flexible Playbook system that can integrate MCollective and Puppet with many other systems
- A Connector using NATS.io
- Support for SRV records for configuration to atain a zero config setup
- Every component uses strong SSL encryption that cannot be disabled.
- Integration with PuppetDB, PuppetCA, Puppet Bolt, Puppet Tasks and Puppet Plans.
See choria.io for full details
A deployment guide can be found at the Choria Website
Usage
Package Repo and Basic Installation
At present RHEL 5 - 7, Debian Xenial and Ubuntu Stretch are supported, the repository also include packages for other tools like our Stream Replicator etc.
It's best configured using Hiera, to install the YUM Repository and install a particular version with some basic adjustments this will be enough.
choria::manage_package_repo: true
choria::version: 0.0.7-1.el%{facts.os.release.major}
choria::srvdomain: prod.example.net
choria::loglevel: warn
include choria
Configuring the Choria Broker
In all cases below you need to ensure the choria::broker
class is used:
include choria::broker
Configuration for the various scenarios are shown via Hiera, you can run all scenarios on the same instance.
Configure a Standalone Choria Broker
We can now configure a standalone Choria Broker, it will listen on ports 4222, 4223 and 8222 on ::
, these are configurable via other properties of choria::broker
choria::broker::network_broker: true
Configure a Choria Broker Cluster
To configure a Broker Cluster over port 4223 you can add this data:
choria::broker::network_peers:
- nats://choria1.example.net:4223
- nats://choria2.example.net:4223
- nats://choria3.example.net:4223
This will build a TLs secures Choria Broker Cluster
Configure Federation Brokers
To Federate a network - london
- into a Federated Collective you'd run a Federation Broker in the london
LAN with the following configuration:
choria::broker::federation_broker: true
choria::broker::federation_cluster: london
This will use the SRV domain configured in choria::srvdomain
to find the brokers to connect to as per the documentation.
You can configure custom addresses to connec to:
choria::broker::federation_middleware_hosts:
- nats://choria1.central.example.net:4223
- nats://choria2.central.example.net:4223
- nats://choria3.central.example.net:4223
choria::broker::collective_middleware_hosts:
- nats://choria1.london.example.net:4223
- nats://choria2.london.example.net:4223
- nats://choria3.london.example.net:4223
Configure a NATS Streaming Adapter
Given a NATS Stream server with a cluster id prod_stream
this will adapt Registration messages received in the Collective to the NATS Stream for processing using Stream Processing patterns.
choria::broker::adapters:
discover:
stream:
type: "natsstream"
clusterid: prod_stream
topic: discovery
workers: 10
servers:
- stan1.example.net:4222
- stan2.example.net:4222
- stan3.example.net:4222
ingest:
topic: mcollective.broadcast.agent.discovery
protocol: request
workers: 10
Date | Issue | Description |
---|---|---|
2018/03/21 | Release 0.7.0 | |
2018/03/06 | 36 | Add mandatory name option to the YUM repositories |
2018/03/04 | 32 | Add missing install dependency to improve puppet run ordering |
2018/03/02 | 6 | Support managing the Choria Ubuntu and Debian repositories |
2018/03/02 | 21 | Support managing the Choria Data Adapters |
2018/03/02 | 5 | Support managing the Choria Federation Broker |
2018/03/01 | 4 | Support managing the Choria Network Broker |
2018/02/25 | Release 0.1.0 | |
2018/02/24 | 14 | Add Choria::ShellSafe |
2018/02/23 | 12 | Add choria::in_groups_of |
2018/02/23 | 1 | Support functions, types and helpers to support playbooks in the Puppet DSL |
2018/02/16 | 3 | Manage the YUM repository on EL machines |
Dependencies
- puppetlabs/stdlib (>= 4.24.0 < 5.0.0)
- puppetlabs/apt (>= 4.5.1 < 6.0.0)
- choria/mcollective_choria (>= 0.7.0 < 2.0.0)
- choria/mcollective (>= 0.4.0 < 2.0.0)