diff --git a/Servers & Workflows/Linux/Automation/Puppet/Puppet Deployment.md b/Servers & Workflows/Linux/Automation/Puppet/Puppet Deployment.md index 8c282f9..8e8eb68 100644 --- a/Servers & Workflows/Linux/Automation/Puppet/Puppet Deployment.md +++ b/Servers & Workflows/Linux/Automation/Puppet/Puppet Deployment.md @@ -4,6 +4,44 @@ Puppet is another declarative configuration management tool that excels in syste !!! note "Assumptions" This document assumes you are deploying Puppet server onto Rocky Linux 9.4. Any version of RHEL/CentOS/Alma/Rocky should behave similarily. +## Architectural Overview +``` mermaid +sequenceDiagram + participant Gitea as Gitea Repo (Puppet Environment) + 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 Neofetch as Neofetch Package + + %% PuppetMaster pulling environment updates + PuppetMaster->>Gitea: Pull Puppet Environment updates + Gitea-->>PuppetMaster: Send latest Puppet repository code + + %% r10k deployment process + PuppetMaster->>r10k: Deploy environment with r10k + r10k->>PuppetMaster: Fetch and install Puppet modules + r10k-->>PuppetMaster: Compile environments and apply updates + + %% 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) + ``` + ## Deployment Steps: You will need to perform a few steps outlined in the [official Puppet documentation](https://www.puppet.com/docs/puppet/7/install_puppet.html) to get a Puppet server operational. A summarized workflow is seen below: