Puppet deployment scenarios
SIMP 6.4+ is intended to support the Puppet deployment scenarios described in this article.
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 (from RPMs) | ||||
|
(Git hosting service) | ||||
| |||||
|
Local (Puppetfile-only) Scenarios
Local: Deploying from Local module repos
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 installto deploy the modules defined in the localPuppetfile.the module repos can be git repositories on the local filesystem, referenced via
file://urls.
Notes:
The Puppet environment directory and
Puppetfilemust exist beforer10k puppetfile installis runThe modules in the
Puppetfileare defined withfile://URLs, and pull from Git repositories on the local file system
Control Repository Scenarios
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:
Arranging their own external git-hosting service
Managing their own Puppet control repository
Updating their modules repositories with the contents delivered on the local filesystem by SIMP Puppet module RPMs.
Control Repo: Manual r10k deploy
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
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
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