Update Servers & Workflows/Linux/Automation/Puppet/Puppet Deployment.md

This commit is contained in:
2024-10-03 23:37:44 -06:00
parent cb09eced14
commit 3f3bcfa803

View File

@ -7,34 +7,40 @@ Puppet is another declarative configuration management tool that excels in syste
## Architectural Overview ## Architectural Overview
``` mermaid ``` mermaid
sequenceDiagram sequenceDiagram
participant Gitea participant Gitea as Gitea Repo (Puppet Environment)
participant r10k as r10k (Environment Deployer) participant r10k as r10k (Environment Deployer)
participant PuppetMaster as Puppet Server participant PuppetMaster as Puppet Server (lab-puppet-01.bunny-lab.io)
participant Agent as Managed Agent participant Agent as Managed Agent (fedora.bunny-lab.io)
participant Neofetch as Neofetch Package participant Neofetch as Neofetch Package
loop When PuppetMaster is triggered %% PuppetMaster pulling environment updates
PuppetMaster->>Gitea: Pull Puppet Environment updates PuppetMaster->>Gitea: Pull Puppet Environment updates
Gitea->>PuppetMaster: Send latest Puppet repository code Gitea-->>PuppetMaster: Send latest Puppet repository code
PuppetMaster->>r10k: Deploy environment
r10k->>PuppetMaster: Fetch and install modules
r10k->>PuppetMaster: Compile environment and apply updates
end
loop Agent Check-in %% r10k deployment process
Agent->>PuppetMaster: Request catalog PuppetMaster->>r10k: Deploy environment with r10k
PuppetMaster->>Agent: Authenticate and verify certificate r10k->>PuppetMaster: Fetch and install Puppet modules
Agent->>PuppetMaster: Send facts about system r10k-->>PuppetMaster: Compile environments and apply updates
PuppetMaster->>PuppetMaster: Compile catalog based on manifest
PuppetMaster->>Agent: Send catalog
end
alt Neofetch not installed %% Agent enrollment process
Agent->>Neofetch: Install neofetch Agent->>PuppetMaster: Request to enroll (Agent Check-in)
Neofetch->>Agent: Installation complete PuppetMaster->>Agent: Verify SSL Certificate & Authenticate
end Agent-->>PuppetMaster: Send facts about system (Facter)
%% PuppetMaster compiles catalog for the agent
PuppetMaster->>PuppetMaster: Compile Catalog
PuppetMaster->>PuppetMaster: Check if 'neofetch' is required in manifest
PuppetMaster-->>Agent: Send compiled catalog with 'neofetch' installation instructions
%% Agent installs neofetch
Agent->>Agent: Check if 'neofetch' is installed
Agent--xNeofetch: 'neofetch' not installed
Agent->>Neofetch: Install 'neofetch'
Neofetch-->>Agent: Installation complete
%% Agent reports back to PuppetMaster
Agent->>PuppetMaster: Report status (catalog applied and neofetch installed)
Agent->>PuppetMaster: Report status (neofetch installed)
``` ```
## Deployment Steps: ## Deployment Steps: