Add your comments directly to the page. Include links to any relevant research, data, or feedback. |
Summarize this decision in the table below. Type /date to quickly add the due date and @mention the driver, approver, contributors, and informed to keep everyone on the same page.
|
This decision refines decisions from the log, How to restructure the RPM installation sequence to be more r10k/Code Manager friendly. |
This document describes proposed behavior in an upcoming SIMP release (6.4.0+). Links to SIMP's documentation refer to the current release of SIMP at the time of writing (6.3.3). |
Table of Contents
This article describes the workflow specific to installing a fresh SIMP 6.4.0+ server from an ISO. It builds on the decision log SIMP 6.4.0: What r10k-friendly RPM features should it include?.
Drivers:
Other considerations:
The term "environment" is heavily overloaded with respect to SIMP, Puppet, DevOps, and IT in general.
This decision log uses the SIMP-specific terminology defined in the design article, SIMP Environments.
For reference, the process has been broken down into stages A, B, and C:
New 6.4.0+ behavior is marked in red. |
(Admin) installs SIMP from ISO, ala the SIMP docs procedure, "ISO Installation (preferred)."
auto.cfg
.Key 6.4.0+ differences:
simp
Puppet environment yet, /etc/puppetlabs/code/environments/simp
simp config
(Admin) logs into the newly-installed SIMP host and runs simp config
.
Key 6.4.0+ differences:
All stage B logic is new to simp config
, and it replaces RPM logic in SIMP ≤ 6.3. Specifically, it replaces the old logic between simp-environment
and simp-adapter
that effectively accomplished the "auto-deploy" in SIMP ≤ 6.3, but in an opinionated manner that can conflict with r10k administration. The old logic:
simp/
Puppet environment directory, and simp
Puppet environment using rsync
.By contrast, the new logic will:
production
environment exists under the Puppet (/etc/puppetlabs
) and Secondary (/var/simp
/...) environment directories, while running simp config
.production
/ environment—with r10k workflows, it doesn't make sense to create a simp
/ symlinked to production
/Puppetfile
and Puppetfile.simp
in the production
Puppet environment directoryPuppetfile
using r10k puppetfile install
A significant difference is that the simp config "auto-deploy" only runs once in the lifetime of the the SIMP server, whereas the SIMP ≤ 6.3 the auto-deploy executed during the %post
or %posttrans
of each Puppet Module and simp-environment RPM, including upgrades.
simp-
environment
RPM.simp config
is run on a Puppet server without any deployed Puppet environments.simp config
is run on a Puppet server without any deployed Puppet modules.After deploying the initial Puppet environment, the rest of the SIMP installation continues without any specific alterations to support the Puppetfile-based workflow. This includes the remainder of simp config
(C1), (admin-initiated) simp bootstrap
, (admin-initiated) reboot, and the post-boot Puppet agent run.
simp_rpm_helper
script ensures that a local bare git repository exists for the module, and it contains a commit of the modules files (tagged with the module's version).simp puppetfile generate
to work. simp config
's initial "auto-deploy"The "auto-deploy" referenced in stage B2 must perform at least three actions:
production
Puppet environment directory $codedir/environments/production
and secondary environment directory at /var/simp/environments/production
.simp environment new ENVIRONMENT
(see section below).
Puppetfile
and Puppetfile.simp
in the Puppet environment directory.simp puppetfile generate --skeleton > Puppetfile
simp puppetfile generate > Puppetfile.simp
r10k puppetfile install
after the Puppetfile
and Puppetfile.simp
are in place. simp environment new ENVIRONMENT
During the initial planning for the ISO installation, it was noted that the initial install (and subsequent admin work) would need to create environments.
This proposed ISO+Puppetfile workflow accommodates all common Puppetfile
-based deployment methods as natively as possible.
Local Puppet admin(s):
r10k puppetfile install
to deploy the modules defined in the local Puppetfile
. file://
urls.6.4.0+: The new ISO+Puppetfile workflow is most relevant to this scenario.
Puppetfile.simp
.Users are only expected to maintain their (non-SIMP) Puppetfile
(if necessary), and deploy RPM-delivered updates with r10k puppetfile install.
6.4.0+: Local Puppet admins may create new Puppet environments, however: a Secondary environment is required to exist for each Puppet environment.
production
was generated automatically during simp config
's initial auto-deploy in Stage B2simp environment new
.
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 control repository, and updating their modules repositories with the contents delivered on the local filesystem by SIMP Puppet module RPMs. |
Puppet admins:
r10k deploy environment [ENVIRONMENT]
6.4.0+: The ISO+Puppetfile workflow will not interfere with this scenario, however a Secondary environment is required to exist for each Puppet environment.
production
was generated automatically during simp config
's initial auto-deploy in Stage B2, simp environment new
.
simp environment new
command can be configured to run after each deployment via the postrun
setting in r10k.yaml
.Puppet admins:
6.4.0+: The ISO+Puppetfile workflow will not interfere with this scenario, however a Secondary environment is required to exist for each Puppet environment.
production
was generated automatically during simp config
's initial auto-deploy in Stage B2, simp environment new
.
postrun
in Code Manager's r10k.yaml
.post_environment_hooks
setting.simp environment new
.
simp environment new
command can be configured to run after each environment deployment by setting postrun
in Code Manager's r10k.yaml
.post_environment_hooks
setting.Option 1: | Option 2: | |
---|---|---|
Description |
| |
Pros and cons | ||
Estimated cost |
Add action items to close the loop on open questions or concerns
(Working assumption for Sprint 82 as of 14 Mar 2019): Option 1