 
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.
Background¶
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).