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

This commit is contained in:
2024-10-03 21:54:40 -06:00
parent 403bbf14de
commit 404cea25c7

View File

@ -18,7 +18,7 @@ sudo rpm -Uvh https://yum.puppet.com/puppet7-release-el-9.noarch.rpm
**Installation Scope**: Puppet Server **Installation Scope**: Puppet Server
``` sh ``` sh
# Install the Puppet Server # Install the Puppet Server
yum install -y puppetserver sudo yum install -y puppetserver
systemctl enable --now puppetserver systemctl enable --now puppetserver
# Validate Successful Deployment # Validate Successful Deployment
@ -95,7 +95,7 @@ sources:
``` sh ``` sh
# Lockdown the Permissions of the Configuration File # Lockdown the Permissions of the Configuration File
chmod 600 /etc/puppetlabs/r10k/r10k.yaml sudo chmod 600 /etc/puppetlabs/r10k/r10k.yaml
# Create r10k Cache Directory # Create r10k Cache Directory
sudo mkdir -p /var/cache/r10k sudo mkdir -p /var/cache/r10k
@ -121,26 +121,32 @@ Navigate to "**Gitea > User (Top-Right) > Settings > Applications
Now we want to configure Gitea to store the credentials for later use by r10k: Now we want to configure Gitea to store the credentials for later use by r10k:
``` sh ``` sh
# Enable Stored Credentials (We will address security concerns further down...) # Enable Stored Credentials (We will address security concerns further down...)
git config --global credential.helper store sudo yum install -y git
sudo git config --global credential.helper store
# Clone the Git Repository Once to Store the Credentials (Use the Application Token as the password) # Clone the Git Repository Once to Store the Credentials (Use the Application Token as the password)
# Username: nicole.rappe # Username: nicole.rappe
# Password: <Application Token Value> # Password: <Application Token Value>
git clone https://git.bunny-lab.io/GitOps/Puppet.git /tmp/PuppetTest sudo git clone https://git.bunny-lab.io/GitOps/Puppet.git /tmp/PuppetTest
# Verify the Credentials are Stored # Verify the Credentials are Stored
cat /root/.git-credentials sudo cat /root/.git-credentials
# Lockdown Permissions # Lockdown Permissions
chmod 600 /root/.git-credentials sudo chmod 600 /root/.git-credentials
# Cleanup After Ourselves # Cleanup After Ourselves
rm -rf /tmp/PuppetTest sudo rm -rf /tmp/PuppetTest
``` ```
Finally we validate that everything is working by pulling down the Puppet environments using r10k on the Puppet Server: Finally we validate that everything is working by pulling down the Puppet environments using r10k on the Puppet Server:
``` sh ``` sh
# Deploy Puppy Environments from Gitea
sudo /usr/local/bin/r10k deploy environment -p sudo /usr/local/bin/r10k deploy environment -p
# Validate r10k is Installing Modules in the Environments
sudo ls /etc/puppetlabs/code/environments/production/modules
sudo ls /etc/puppetlabs/code/environments/development/modules
``` ```
!!! success "Successful Puppet Environment Deployment !!! success "Successful Puppet Environment Deployment
@ -214,6 +220,13 @@ sudo systemctl restart puppetserver
## Pull Puppet Environments from Gitea ## Pull Puppet Environments from Gitea
At this point, we can tell r10k to pull down the Puppet environments (e.g. `Production` and `Development`) that we made in the Gitea repository in previous steps. Run the following command on the Puppet Server to pull down the environments. This will download / configure any Puppet Forge modules as well as any hand-made modules such as Neofetch. At this point, we can tell r10k to pull down the Puppet environments (e.g. `Production` and `Development`) that we made in the Gitea repository in previous steps. Run the following command on the Puppet Server to pull down the environments. This will download / configure any Puppet Forge modules as well as any hand-made modules such as Neofetch.
``` sh ``` sh
sudo /usr/local/bin/r10k deploy environment production -p sudo /usr/local/bin/r10k deploy environment -p
sudo /usr/local/bin/r10k deploy environment development -p # OPTIONAL: You can pull down a specific environment instead of all environments if you specify the branch name, seen here:
#sudo /usr/local/bin/r10k deploy environment development -p
```
## Apply PuppetDB Configuration to Puppet Server
At this point, we are going to deploy the configuration from Gitea to the Puppet Server so it installs PuppetDB automatically.
``` sh
sudo /opt/puppetlabs/bin/puppet agent -t
``` ```