Forge Home

choria

tasks
Install and manage the Choria plugin for MCollective

Choria Orchestrator

choria

128,204 downloads

180 latest version

2.8 quality score

Version information

  • 0.26.2 (latest)
  • 0.26.1 (deleted)
  • 0.26.0 (deleted)
  • 0.25.0
  • 0.24.0
  • 0.23.1
  • 0.23.0
  • 0.22.2
  • 0.22.1
  • 0.22.0
  • 0.21.0
  • 0.20.0
  • 0.19.0
  • 0.18.0
  • 0.17.0
  • 0.16.0
  • 0.15.0
  • 0.14.0
  • 0.13.1
  • 0.13.0
  • 0.12.0
  • 0.11.1
  • 0.11.0
  • 0.10.0
  • 0.9.0
  • 0.8.0
  • 0.7.1
  • 0.7.0
  • 0.1.0
released Feb 3rd 2021
This version is compatible with:
  • Puppet Enterprise 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
  • Puppet >= 6.0.0
  • RedHat
    ,
    CentOS
    ,
    OracleLinux
    ,
    Scientific
    ,
    SLES
    ,
    Debian
    ,
    Ubuntu
    ,
    Windows
    ,
    FreeBSD
Tasks:
  • ping
Plans:
  • download_files
  • run
  • status
  • wait

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this declaration to your Puppetfile:

mod 'choria-choria', '0.22.2'
Learn more about managing modules with a Puppetfile

Add this module to a Bolt project:

bolt module add choria-choria
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install choria-choria --version 0.22.2

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

choria/choria — version 0.22.2 Feb 3rd 2021

choria/choria

The Choria Orchestrator

A modern Orchestration Engine with roots in The Marionette Collective. Please review the Official Documentation for installation guidance.

Usage

Package Repo and Basic Installation

At present RHEL 5 - 7, Debian Stretch and Ubuntu 16.04 LTS (Xenial Xerus) 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::log_level: warn
include choria

Configuring the Choria Server

The Choria Server replaces mcollectived.

On all your nodes where you wish to run the new service:

choria::server: true
choria::manage_package_repo: true

On all nodes including those that are pure MCollective and your clients:

mcollective_choria::config:
  security.serializer: "json"

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

Please review the Choria Network Broker documentation for full details.

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:

Please review the Federations of Collectives documentation for full details.

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:
  - choria1.central.example.net:4222
  - choria2.central.example.net:4222
  - choria3.central.example.net:4222
choria::broker::collective_middleware_hosts:
  - choria1.london.example.net:4222
  - choria2.london.example.net:4222
  - choria3.london.example.net:4222

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.

Please review the Data Adapters documentation for full details.

choria::broker::adapters:
  discover:
    stream:
      type: "nats_stream"
      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