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
``` mermaid
sequenceDiagram
participant Gitea
participant Gitea as Gitea Repo (Puppet Environment)
participant r10k as r10k (Environment Deployer)
participant PuppetMaster as Puppet Server
participant Agent as Managed Agent
participant PuppetMaster as Puppet Server (lab-puppet-01.bunny-lab.io)
participant Agent as Managed Agent (fedora.bunny-lab.io)
participant Neofetch as Neofetch Package
loop When PuppetMaster is triggered
%% PuppetMaster pulling environment updates
PuppetMaster->>Gitea: Pull Puppet Environment updates
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
Gitea-->>PuppetMaster: Send latest Puppet repository code
loop Agent Check-in
Agent->>PuppetMaster: Request catalog
PuppetMaster->>Agent: Authenticate and verify certificate
Agent->>PuppetMaster: Send facts about system
PuppetMaster->>PuppetMaster: Compile catalog based on manifest
PuppetMaster->>Agent: Send catalog
end
%% r10k deployment process
PuppetMaster->>r10k: Deploy environment with r10k
r10k->>PuppetMaster: Fetch and install Puppet modules
r10k-->>PuppetMaster: Compile environments and apply updates
alt Neofetch not installed
Agent->>Neofetch: Install neofetch
Neofetch->>Agent: Installation complete
end
%% Agent enrollment process
Agent->>PuppetMaster: Request to enroll (Agent Check-in)
PuppetMaster->>Agent: Verify SSL Certificate & Authenticate
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: