...
Contents:
Table of Contents |
---|
Overview
Deployment strategies vary widely, based on a site’s infrastructure, existing policies, and administrative considerations. SIMP broadly groups these strategies into two high-level deployment scenarios, with some important variations:
Deployment Scenario | Variation | r10k command | Control Repo? | Module | Autodeploy |
---|---|---|---|---|---|
Local (Puppetfile-only) | Local module repos | r10k puppetfile install | Local (from RPMs) | ||
Manual r10k | r10k deploy environment |
(Git hosting service) | |||
Webhook + r10k | r10k deploy environment | ||||
PE Code Manager | puppet code deploy |
Local (Puppetfile-only) Scenarios
Anchor | ||||
---|---|---|---|---|
|
Local: Deploying from Local module repos
Anchor | ||||
---|---|---|---|---|
|
This is the initial deployment scenario immediately after Installing SIMP from an ISO.
Under this scenario, a local r10k user will:
- deploy Puppet modules from an existing Puppet environment directory.
- use the command
r10k puppetfile install
to deploy the modules defined in the localPuppetfile
. - the module repos can be git repositories on the local filesystem, referenced via
file://
urls.
...
- The Puppet environment directory and
Puppetfile
must exist beforer10k puppetfile install
is run - The modules in the
Puppetfile
are defined withfile://
URLs, and pull from Git repositories on the local file system
Control Repository Scenarios
Anchor | ||||
---|---|---|---|---|
|
Info |
---|
Administrators of all control repository scenarios are assumed to have enough git and r10k (or Code Manager) expertise to manage their own infrastructure. This includes:
|
Control Repo: Manual r10k deploy Anchor Manual r10k deploy Manual r10k deploy
Anchor | ||||
---|---|---|---|---|
|
Puppet admins:
- maintain a Puppet control repository from an external git service.
An r10k user logs into the Puppet master and manually deploys entire Puppet environment directories (one per branch) from the command line:
r10k deploy environment [ENVIRONMENT]
puppet code deploy [ENVIRONMENT]
(Puppet Enterprise)
Control Repo: Webhook-triggered r10k deploy
Anchor | ||||
---|---|---|---|---|
|
Puppet admins:
- Maintain a Puppet control repository (and Puppet module repositories) in an external git-hosting service
- Deploy a Puppet environment by pushing updates to a control repository branch
When a control repository branch is updated, it automatically triggers an environment deployment on the Puppet master:
- The Git-hosting service uses a webhook to notify the Puppet master about the branch that was changed
- The webhook on the Puppet master triggers r10k to deploy the branch as an environment
Control Repo: PE Code Manager & File Sync
Anchor | ||||
---|---|---|---|---|
|
Puppet admins:
- Maintain a Puppet control repository (and Puppet module repositories) in an external git-hosting service
- Deploy a Puppet environment by pushing updates to a control repository branch
When a control repository branch is updated, it automatically triggers an environment deployment on the Puppet master:
- The Git-hosting service uses a webhook to notify the PE master/MoM about the branch that was changed
- The webhook on the Puppet master triggers PE Code Manager to deploy the branch as a staged environment
- The PE File Sync service distributes the staged environment to any compile masters, and promotes the code from staging to live use.
References
- SIMP Environments — overview & terminology of "Environments" within SIMP
- (Source for https://draw.io diagrams: SIMP 6.4 use case - deployment scenarios.xml)
...