SIMP 6.4+: Design `simp environment` command
This article began as an artifact of https://simp-project.atlassian.net/browse/SIMP-6380.
It describes the simp environment new command (and others), proposed in the decision log SIMP 6.4+: The ISO installation/Puppetfile workflow.
Design lineage
This design has been informed by the mapping work in SIMP 6.4: Map old/new files and capabilities.
Terminology
This page uses terminology defined in the SIMP Environments article.
- 1 (Mockup:) simp environment COMMAND [OPTIONS]
- 1.1 simp environment new ENVIRONMENT [OPTIONS]
- 1.2 simp environment update ENVIRONMENT [OPTIONS]
- 1.3 simp environment remove
- 1.4 simp environment mirror [ENVIRONMENT] [OPTIONS]
- 1.5 simp environment list
- 1.6 simp environment fix ENVIRONMENT
- 1.7 simp environment validate [ENVIRONMENT] [OPTIONS]
- 1.8 simp environment export ENVIRONMENT FILE [OPTIONS]
- 2 Implementation
(Mockup:) simp environment COMMAND [OPTIONS]
Manage and coordinate SIMP omni-environments
Usage:
simp environment COMMAND [OPTIONS]
Alias:
simp env
A complete SIMP environment (often referred to as the SIMP "omni-environment")
has three distinct sources:
* Puppet: Puppet code and data under $environmentpath/$environment/ * Secondary: Environment-specific SIMP data (e.g, site_files/) * Writable: Env-specific SIMP data created during compile (e.g., passgen)
The Secondary and Writable environment are collectively referred to as the
SIMP "Extra" environment.
In order to compile the Puppet catalog, the Puppet server MUST be able to readfrom all three environments, and it MUST be able to write to the Writableenvironment. The Puppet and Secondary environment's assets MUST be available_before_ compiling the catalog.Files:
/etc/simp/simp_cli.yaml
Contains configurations for the simp cli command
simp environment new ENVIRONMENT [OPTIONS]
Create a new SIMP "Extra" (default) or "omni" environment
Usage:
simp environment new ENVIRONMENT [OPTIONS]
By default, this command will: * create a new environment (–-skeleton) * raise an error if an environment directory already existsIt can create a complete SIMP omni-environment with --puppet-envExamples: # Create a new development "extra" environment simp env new development
# Link staging's Secondary and Writable env dirs to production simp env new staging --link production
# Create a separate copy of production (will diverge over time) simp env new newprod --copy production # Create new omni environment, simp env new local_prod --puppetfile
Options:
|
|
|---|---|
|
|
|
|
|
|