Update Servers & Workflows/Linux/Automation/Puppet/Puppet Deployment.md
This commit is contained in:
@ -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)
|
||||||
|
|
||||||
Agent->>PuppetMaster: Report status (neofetch installed)
|
%% 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)
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Deployment Steps:
|
## Deployment Steps:
|
||||||
|
Reference in New Issue
Block a user