Skip to content

Commit 9b86fca

Browse files
Update Puppet documentation for GCP: enhance titles, improve clarity, and add summaries for installation, benchmarking, and instance creation sections.
1 parent 885f309 commit 9b86fca

5 files changed

Lines changed: 75 additions & 53 deletions

File tree

content/learning-paths/servers-and-cloud-computing/puppet-on-gcp/background.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
2-
title: Get started with Puppet
2+
title: Get started with Arm-based Google Axion and Puppet
33

44
weight: 2
55

66
layout: "learningpathall"
77
---
88

9-
## Overview
9+
## Automate and optimize cloud deployments on Arm
1010

1111
Modern cloud workloads demand scalable, efficient, and automated infrastructure management. By combining Arm-based Google Axion C4A instances with Puppet, you can take advantage of high-performance, energy-efficient virtual machines and powerful configuration management tools. This section introduces the key technologies you'll use to automate and optimize your cloud deployments on Arm in Google Cloud.
1212

@@ -22,6 +22,7 @@ To learn more about Google Axion, see the Google blog [Introducing Google Axion
2222
[Puppet](https://puppet.com/) is an open-source configuration management and automation tool designed to help system administrators and DevOps teams manage infrastructure as code. Developed by [Puppet Labs](https://puppet.com/company/), it automates the provisioning, configuration, and management of servers and services across large-scale environments.
2323

2424
Puppet uses a declarative language to define system configurations, ensuring that every machine’s state matches the desired setup described in its manifests. It supports both agent-based and agentless architectures, making it flexible for diverse deployment needs.
25+
2526
Known for its scalability, reliability, and idempotent behavior, Puppet continuously enforces configurations, reducing manual effort and configuration drift. It integrates well with major platforms like Linux, Windows, macOS, and cloud providers such as AWS, Azure, and GCP.
2627

2728
Common use cases include automating server configuration, applying security policies, software installation, and infrastructure auditing. Puppet is widely used in enterprises for managing hybrid and multi-cloud environments efficiently.

content/learning-paths/servers-and-cloud-computing/puppet-on-gcp/baseline.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Perform Puppet Baseline testing
2+
title: Perform Puppet baseline testing
33
weight: 5
44

55
### FIXED, DO NOT MODIFY
@@ -123,7 +123,7 @@ Notice: /Stage[main]/Main/File[/tmp/puppet_test.txt]/ensure: defined content as
123123
Notice: Applied catalog in 0.01 seconds
124124
```
125125

126-
Open the file created by Puppet to confirm the content matches your script. This step validates that Puppet executed your manifest correctly.
126+
Open the file created by Puppet to confirm the content matches your script. This step validates that Puppet executed your manifest correctly:
127127

128128
```console
129129
cat /tmp/puppet_test.txt
@@ -206,6 +206,8 @@ The output is similar to the following:
206206
}
207207
```
208208

209+
## What you've accomplished and what's next
210+
209211
You've completed the essential baseline checks for Puppet on your GCP SUSE Arm64 VM. At this point, you've:
210212

211213
- Verified that Puppet, Facter, and Ruby are installed and working

content/learning-paths/servers-and-cloud-computing/puppet-on-gcp/benchmarking.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ layout: learningpathall
99

1010
## Benchmark Puppet on a GCP SUSE Arm64 VM
1111

12-
This guide explains how to perform a Puppet standalone benchmark on a Google Cloud Platform (GCP) SUSE Linux Arm64 VM. It measures Puppet’s local execution performance without requiring a Puppet Master.
12+
This section walks you through how to perform a Puppet standalone benchmark on a Google Cloud Platform (GCP) SUSE Linux Arm64 VM. It measures Puppet’s local execution performance without requiring a Puppet Master.
1313

1414

1515
## Prerequisites
@@ -40,7 +40,7 @@ notify { 'Benchmark Test':
4040
}
4141
```
4242

43-
### Explore the code
43+
## Explore the code
4444

4545
Here is a breakdown of the key elements in the `benchmark.pp` manifest to help you understand how Puppet processes and displays information during the benchmark:
4646

@@ -102,3 +102,9 @@ Confirm that your benchmark output matches the expected metrics for catalog comp
102102
These benchmark results demonstrate that catalog compilation completed in only 0.01 seconds, highlighting the processing speed of the Arm64 platform. The benchmark ran smoothly in the production environment, and the configuration version was successfully recorded as 1763407825. Catalog application also finished in 0.01 seconds, indicating very low execution latency. The total runtime was 1.054 seconds, which reflects efficient overall performance for Puppet on an Arm64 SUSE VM in Google Cloud Platform.
103103

104104
This benchmarking method is useful for validating Puppet performance after migration to Arm64, or when optimizing infrastructure for cost and speed. For more advanced benchmarking, consider automating multiple runs, collecting metrics over time, and comparing results with x86-based VMs to quantify the benefits of Arm64 on GCP.
105+
106+
## Summary and next steps
107+
108+
You’ve successfully benchmarked Puppet on an Arm64-based SUSE VM in Google Cloud Platform. You created and applied a simple manifest, measured key performance metrics, and interpreted the results to validate Puppet’s efficiency on Arm infrastructure. These steps help ensure your configuration management setup is optimized for speed and reliability on modern cloud platforms.
109+
110+
Well done - completing this benchmark gives you a solid foundation for further automation and optimization with Puppet on Arm.

content/learning-paths/servers-and-cloud-computing/puppet-on-gcp/installation.md

Lines changed: 39 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,28 @@
11
---
2-
title: Install Puppet
2+
title: Install Puppet on a GCP VM
33
weight: 4
44

55
### FIXED, DO NOT MODIFY
66
layout: learningpathall
77
---
88

9-
## Install Puppet on GCP VM
10-
This walks you through installing Puppet on a Google Cloud Platform (GCP) SUSE Linux arm64 VM. You'll set up all required dependencies, build Ruby from source, and prepare the environment for Puppet automation.
9+
## Set up your environment and install Puppet
10+
This section walks you through installing Puppet on a Google Cloud Platform (GCP) SUSE Linux arm64 VM. You'll set up all required dependencies, build Ruby from source, and prepare the environment for Puppet automation.
1111

12-
### Install build dependencies and Ruby from source
13-
Installs all required tools and builds Ruby 3.1.4 from source to ensure compatibility with Puppet.
12+
## Install dependencies and Ruby
13+
To get started, you'll install the required development tools and libraries, then build Ruby 3.1.4 from source. This approach prepares your environment for Puppet and helps prevent compatibility problems.
14+
15+
To install the necessary packages for Ruby use this command:
1416

15-
First we install the prerequisites for ruby:
1617
```console
1718
sudo zypper install git curl gcc make patch libyaml-devel libffi-devel libopenssl-devel readline-devel zlib-devel gdbm-devel bzip2 bzip2-devel
1819
```
1920

20-
NOTE:
21-
```note
22-
Due to changing version dependencies, you may receive a message in the "zypper"
23-
command above that ncurses-devel is not the correct version. If so, please select the
24-
option that permits downgrading of the installed ncurses-devel package to the required
25-
version (normally "Solution 1"), followed by confirmation with "y".
26-
```
27-
Then, we will install ruby itself:
21+
22+
{{% notice Note %}}If you see a version conflict for `ncurses-devel` during the `zypper` install, choose the option that allows downgrading `ncurses-devel` to the required version (usually "Solution 1"). Confirm the downgrade by entering "y" when prompted. This step can be confusing at first, but it's a common requirement for building Ruby from source on SUSE Linux.{{% /notice %}}
23+
24+
Next, install ruby:
25+
2826
```console
2927
cd ~
3028
sudo wget https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.tar.gz
@@ -34,45 +32,57 @@ sudo ./configure
3432
sudo make && sudo make install
3533
```
3634

37-
### Verify Ruby
38-
Checks that Ruby is correctly installed and available in your system path.
35+
## Verify Ruby
36+
Check that Ruby is correctly installed and available in your system PATH:
3937

4038
```console
4139
ruby -v
4240
which ruby
4341
```
42+
The expected output is:
4443

4544
```output
4645
ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [aarch64-linux]
4746
/usr/local/bin/ruby
4847
```
4948

50-
### Install Puppet dependencies
51-
Installs essential Puppet libraries (`semantic_puppet, facter, hiera`) needed for automation tasks.
49+
## Install Puppet dependencies
50+
Install the core Puppet libraries to enable automation and configuration management on your Arm-based GCP VM.
5251

53-
- **semantic_puppet** – Provides tools for handling Puppet-specific versioning, modules, and dependency constraints.
54-
- **facter** – Collects system information (facts) such as OS, IP, and hardware details for Puppet to use in configuration decisions.
55-
- **hiera** – Key-value lookup tool that manages configuration data outside of Puppet manifests for flexible data separation.
52+
First, download and extract the Puppet source code:
5653

5754
```console
5855
cd ~
5956
sudo wget https://github.com/puppetlabs/puppet/archive/refs/tags/8.10.0.tar.gz
6057
sudo tar -xvf 8.10.0.tar.gz
6158
cd ~/puppet-8.10.0
59+
```
60+
61+
Next, install the required Ruby gems for Puppet:
62+
63+
```console
6264
sudo /usr/local/bin/gem install semantic_puppet -v "~> 1.0"
6365
sudo gem install facter -v "~> 4.0"
6466
sudo gem install hiera
6567
```
6668

67-
{{% notice Note %}}
68-
Puppet 8.8.1 version expands official support for Arm and AArch64, with new agent compatibility for AlmaLinux 9 (AARCH64), Rocky Linux 9 (AARCH64), and Ubuntu 24.04 (ARM). The release ensures compatibility with Ruby 3.3 and resolves multiple agent and catalog-related issues. Security is enhanced with an OpenSSL 3.0.14 upgrade, addressing CVE-2024-4603 and CVE-2024-2511 vulnerabilities.
69-
You can view [this release note](https://help.puppet.com/osp/current/Content/PuppetCore/PuppetReleaseNotes/release_notes_puppet_x-8-8-1.htm)
69+
- `semantic_puppet` manages Puppet-specific versioning and module dependencies
70+
- `facter` collects system information, such as operating system, IP address, and hardware details, for Puppet to use
71+
- `hiera` separates configuration data from Puppet manifests, making your automation setup more flexible
72+
73+
These libraries ensure Puppet runs smoothly and can manage your Arm-based SUSE Linux VM effectively.
74+
75+
These libraries are required for Puppet to work correctly on your Arm-based GCP VM.
76+
77+
78+
79+
< notice Note %>Puppet version 8.8.1 introduces expanded support for Arm and AArch64 platforms. This release adds agent compatibility for AlmaLinux 9 (AARCH64), Rocky Linux 9 (AARCH64), and Ubuntu 24.04 (ARM). It works with Ruby 3.3 and fixes several agent and catalog issues. Security is improved with OpenSSL 3.0.14, addressing recent vulnerabilities (CVE-2024-4603 and CVE-2024-2511).</notice%>
7080

71-
The [Arm Ecosystem Dashboard](https://developer.arm.com/ecosystem-dashboard/) recommends Puppet version 8.8.1, the minimum recommended on the Arm platforms.
72-
{{% /notice %}}
81+
For more information, see the [official Puppet release notes](https://help.puppet.com/osp/current/Content/PuppetCore/PuppetReleaseNotes/release_notes_puppet_x-8-8-1.htm).
7382

74-
### Build and install the Puppet gem
75-
The **Puppet gem** provides the core Puppet framework, including its CLI, manifest parser, and resource management engine.
83+
The [Arm Ecosystem Dashboard](https://developer.arm.com/ecosystem-dashboard/) recommends Puppet 8.8.1 as the minimum version for Arm platforms.
84+
## Build and install the Puppet gem
85+
The Puppet gem provides the core Puppet framework, including its CLI, manifest parser, and resource management engine.
7686

7787
Build and install the Puppet 8.10.0 package from source into your Ruby environment.
7888

@@ -81,7 +91,7 @@ sudo gem build puppet.gemspec
8191
sudo /usr/local/bin/gem install puppet-8.10.0.gem
8292
```
8393

84-
### Verification
94+
## Verify Puppet installation
8595
Confirm Puppet is successfully installed and ready to use on the system.
8696

8797
```console

content/learning-paths/servers-and-cloud-computing/puppet-on-gcp/instance.md

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,32 @@ layout: learningpathall
1111
In this section, you will learn how to provision a Google Axion C4A Arm virtual machine on Google Cloud Platform (GCP) using the `c4a-standard-4` (4 vCPUs, 16 GB memory) machine type in the Google Cloud Console.
1212

1313
{{% notice Note %}}
14-
For support on GCP setup, see the Learning Path [Getting started with Google Cloud Platform](https://learn.arm.com/learning-paths/servers-and-cloud-computing/csp/google/).
14+
If you need help on setting up GCP, see the Learning Path [Getting started with Google Cloud Platform](https://learn.arm.com/learning-paths/servers-and-cloud-computing/csp/google/).
1515
{{% /notice %}}
1616

17-
## Provision a Google Axion C4A Arm VM in Google Cloud Console
17+
## Provision a Google Axion C4A Arm VM
1818

19-
To create a virtual machine based on the C4A instance type:
20-
- Navigate to the [Google Cloud Console](https://console.cloud.google.com/).
21-
- Go to **Compute Engine > VM Instances** and select **Create Instance**.
22-
- Under **Machine configuration**:
23-
- Populate fields such as **Instance name**, **Region**, and **Zone**.
24-
- Set **Series** to `C4A`.
25-
- Select `c4a-standard-4` for machine type.
19+
To create a virtual machine based on the C4A instance type, start by navigating to the [Google Cloud Console](https://console.cloud.google.com/), and follow these steps:
20+
- In the Google Cloud Console, go to **Compute Engine > VM Instances** and select **Create Instance**.
21+
- Under **Machine configuration**, enter the following details:
22+
- **Instance name**: Choose a unique name for your VM.
23+
- **Region** and **Zone**: Select the location closest to your users or workloads.
24+
- **Series**: Set to `C4A` to use Arm-based Axion processors.
25+
- **Machine type**: Select `c4a-standard-4` (4 vCPUs, 16 GB memory).
2626

27-
![Create a Google Axion C4A Arm virtual machine in the Google Cloud Console with c4a-standard-4 selected alt-text#center](images/gcp-vm.png "Creating a Google Axion C4A Arm virtual machine in Google Cloud Console")
27+
![Creating a Google Axion C4A Arm virtual machine in Google Cloud Console with c4a-standard-4 selected. The screenshot shows the VM creation form with the C4A series and c4a-standard-4 machine type highlighted. alt-text#center](images/gcp-vm.png "Creating a Google Axion C4A Arm virtual machine in Google Cloud Console")
2828

2929

30-
- Under **OS and Storage**, select **Change**, then choose an Arm64-based OS image. For this Learning Path, use **SUSE Linux Enterprise Server**.
31-
- If using use **SUSE Linux Enterprise Server**. Select "Pay As You Go" for the license type.
32-
- Once appropriately selected, please Click **Select**.
33-
- Under **Networking**, enable **Allow HTTP traffic**.
34-
- Click **Create** to launch the instance.
35-
- Once created, you should see a "SSH" option to the right in your list of VM instances. Click on this to launch a SSH shell into your VM instance:
30+
- Under **OS and storage**, select **Change**, then choose an Arm64-based operating system image. For this Learning Path, select **SUSE Linux Enterprise Server**.
31+
- For **SUSE Linux Enterprise Server**, select *Pay As You Go* as the license type.
32+
- After selecting the image and license, select **Select** to confirm your choice.
33+
- Under **Networking**, enable **Allow HTTP traffic** to permit web access.
34+
- Select **Create** to launch your VM instance.
35+
- When the instance is ready, you'll see an **SSH** option next to your VM in the list. Select **SSH** to open a shell session in your browser.
3636

3737
![Browser window showing the Google Cloud Console with the SSH button highlighted next to a running VM instance. The interface displays the VM name, status, and available actions. The environment is a web-based dashboard with navigation menus on the left. The emotional tone is neutral and instructional. Visible text includes VM instance details and the SSH button label. alt-text#center](images/gcp-ssh.png "Invoke a SSH session into your running VM instance")
3838

39-
- A window from your browser should come up and you should now see a shell into your VM instance:
39+
When you select **SSH**, a new browser window opens with a shell prompt for your VM instance. You now have direct command-line access to your Arm-based VM, ready to run commands and manage your environment.
4040

4141
![Terminal window displaying a shell prompt inside a Google Axion C4A Arm VM instance. The interface shows a command line ready for input, with the username and hostname visible at the prompt. The wider environment is a browser-based SSH session within the Google Cloud Console. The emotional tone is neutral and instructional. Visible text includes the shell prompt and any default welcome messages shown in the terminal. alt-text#center](images/gcp-shell.png "Terminal shell in your VM instance")
4242

@@ -45,4 +45,7 @@ To create a virtual machine based on the C4A instance type:
4545

4646
You have successfully provisioned a Google Axion C4A Arm virtual machine on Google Cloud Platform using the Console. You selected the Arm64-based SUSE Linux Enterprise Server image, configured networking, and launched your VM. You also connected to your instance using the built-in SSH feature. You now have a running Arm VM on GCP and access to its shell environment.
4747

48-
Next, you'll install Puppet on your new instance to automate configuration and management tasks.
48+
Next, you'll install Puppet on your new instance to automate configuration and management tasks.
49+
50+
51+

0 commit comments

Comments
 (0)