Chef Courier
Chef Courier executes actions on any set or subset of nodes at any time or time interval.
Chef Courier integrates with existing scripts, commands, and tools—without demanding replacements. You can use Chef Courier to orchestrate workflows across your existing Progress Chef tools, additional automation platforms, and custom scripts and APIs. This flexibility allows you to leverage your existing automation expertise while also enabling you to expand your skill set as needed.
Courier jobs
A Courier job defines the actions performed on a node or set of nodes, the schedule that the actions are performed on, and the group of nodes that the actions are performed on. A job can be executed multiple times across multiple nodes for multiple actions.
You can trigger Courier jobs from the Chef 360 Platform web UI, API, CLI, or on a schedule. Chef Courier’s role-based access control and attribute-based access control features make it easy to safely and securely delegate control of tasks to those traditionally outside of operations.
Courier jobs have the following components:
A job definition template is the fundamental specification of a Courier job. Each template is formatted as JSON, YAML, or TOML file or string and contains the details of a single Courier job.
A job identifier is a unique universal identifier (UUID or GUID). This UUID is used to look up information on the job, track the job instances, and is also used in future requests to update or cancel the job. When created, each new job is assigned a unique universal identifier (UUID or GUID).
A job instance is a single occurrence of a job. There can be multiple instances for every job. An instance can be executed for multiple actions on multiple nodes.
A job run is the assigned job instance for a node. Every node provided in the job definition has a job run for every job instance.
A job action is the workloads with corresponding payloads executed by every node during a job run. There can be multiple actions for each job run.
A job step is an individual command executed for an action of a job run.
Courier services
Chef Courier has several services to run and interpret jobs:
The Courier Dispatcher is the central service that sends the job definitions to nodes for execution and maintains all information regarding job runs.
The Courier Runner is a service that runs on each node and interprets and executes the job definition sent to it by the dispatcher.
Interpreters are individual services that are invoked by the runner for executing each type of step in a job action. Every skill has a corresponding interpreter in Courier.