Powered by Plus3 IT Systems

Execution Customization

This document is intended to help both the watchmaker user-community and watchmaker developers and contributors better understand how to customize the execution of the watchmaker configuration-utility. This will be covered in the documents linked-to from the (below) “Common Scenarios” section.


By default, watchmaker executes a standard set of configuration-tasks. The watchmaker utility primarily leverages SaltStack for these configuration-tasks.

The configuration-tasks, themselves, are grouped into sets of related tasks. Related tasks can be things like:

  • Performing OS-hardening (e.g., applying STIGs)

  • Joining a Linux or Windows host to an Active Directory domain

  • Installing/configuring enterprise-mandated software (e.g., anti-virus or other security-tooling)

  • etc.

These task-sets are delivered in the form of formulas. From the vendor documentation on formulas:

Formulas are pre-written Salt States. They are as open-ended as Salt States themselves and can be used for tasks such as installing a package, configuring, and starting a service, setting up users or permissions, and many other common tasks.

All official Salt Formulas are found as separate Git repositories in the “saltstack-formulas” organization on GitHub

The watchmaker project follows a similar convention. Formulae specifically authored to work under watchmaker can be found by visiting Plus3 IT’s GitHub and querying for the substring, “-formula”.

Critical Files

Customization-activities will be governed by two, main files: the watchmaker configuration file (a.k.a.,config.yaml) and the Salt content archive (a.k.a., salt-content.zip). Discussion of the files’ contents are as follows:

Common Scenarios

The behavior of watchmaker can be easily customized towards several ends. The most-commonly encountered are:

If there are other customization-scenarios that should be included in this document-set, please see the contribution guidance. The contribution document covers how to submit requests for documentation-improvements as well as guidance on how to contribute changes (like further customization documentation).