diff --git a/Servers & Workflows/Linux/Automation/Puppet/Puppet Deployment.md b/Servers & Workflows/Linux/Automation/Puppet/Puppet Deployment.md index 8e8eb68..6180979 100644 --- a/Servers & Workflows/Linux/Automation/Puppet/Puppet Deployment.md +++ b/Servers & Workflows/Linux/Automation/Puppet/Puppet Deployment.md @@ -7,39 +7,34 @@ Puppet is another declarative configuration management tool that excels in syste ## Architectural Overview ``` mermaid sequenceDiagram - participant Gitea as Gitea Repo (Puppet Environment) + participant Gitea participant r10k as r10k (Environment Deployer) - participant PuppetMaster as Puppet Server (lab-puppet-01.bunny-lab.io) - participant Agent as Managed Agent (fedora.bunny-lab.io) + participant PuppetMaster as Puppet Server + participant Agent as Managed Agent participant Neofetch as Neofetch Package - %% PuppetMaster pulling environment updates - PuppetMaster->>Gitea: Pull Puppet Environment updates - Gitea-->>PuppetMaster: Send latest Puppet repository code + loop When PuppetMaster is triggered + 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 - %% r10k deployment process - PuppetMaster->>r10k: Deploy environment with r10k - r10k->>PuppetMaster: Fetch and install Puppet modules - r10k-->>PuppetMaster: Compile environments and apply updates + 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 - %% 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) + alt Neofetch not installed + Agent->>Neofetch: Install neofetch + Neofetch->>Agent: Installation complete + end + + Agent->>PuppetMaster: Report status (neofetch installed) ``` ## Deployment Steps: