You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/puppet-on-gcp/_index.md
+9-8Lines changed: 9 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,19 +1,20 @@
1
1
---
2
-
title: Deploy Puppet on Google Cloud C4A (Arm-based Axion VMs)
3
-
4
-
draft: true
5
-
cascade:
6
-
draft: true
2
+
title: Deploy Puppet on Google Cloud C4A
7
3
8
4
minutes_to_complete: 30
9
5
10
-
who_is_this_for: This is an introductory topic for software developers deploying and optimizing Puppet workloads on Arm Linux environments, specifically using Google Cloud C4A virtual machines powered by Axion processors.
6
+
who_is_this_for: This is an introductory topic for developers deploying and optimizing Puppet workloads on Arm Linux environments, specifically using Google Cloud C4A virtual machines powered by Axion processors.
11
7
12
8
learning_objectives:
13
-
- Provision an Arm-based SUSE SLES virtual machine on Google Cloud (C4A with Axion processors)
14
-
- Install Puppet on a SUSE Arm64 (C4A) instance
9
+
- Provision an Arm-based SUSE SLES (SUSE Linux Enterprise Server) virtual machine (VM) on Google Cloud C4A with Axion processors
10
+
- Install Puppet on a SUSE Arm64 C4A instance
15
11
- Verify Puppet by applying a test manifest and confirming successful resource creation on Arm64
16
12
- Benchmark Puppet by measuring catalog compile time, apply speed, and resource usage on Arm64
13
+
author: Pareena Verma
14
+
15
+
prerequisites:
16
+
- A [Google Cloud Platform (GCP)](https://cloud.google.com/free) account with billing enabled
17
+
- Basic familiarity with [Puppet](https://www.puppet.com/)
title: Getting started with Puppet on Google Axion C4A (Arm Neoverse-V2)
2
+
title: Get started with Puppet
3
3
4
4
weight: 2
5
5
6
6
layout: "learningpathall"
7
7
---
8
8
9
-
## Google Axion C4A Arm instances in Google Cloud
9
+
## Overview
10
10
11
-
Google Axion C4A is a family of Arm-based virtual machines built on Google’s custom Axion CPU, which is based on Arm Neoverse-V2 cores. Designed for high-performance and energy-efficient computing, these virtual machines offer strong performance for modern cloud workloads such as CI/CD pipelines, microservices, media processing, and general-purpose applications.
11
+
Modern cloud workloads demand scalable, efficient, and automated infrastructure management. By combining Arm-based GoogleAxion 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.
12
12
13
-
The C4A series provides a cost-effective alternative to x86 virtual machines while leveraging the scalability and performance benefits of the Arm architecture in Google Cloud.
13
+
## Explore Google Axion C4A Arm instances on Google Cloud
14
14
15
-
To learn more about Google Axion, refer to the [Introducing GoogleAxion Processors, our new Arm-based CPUs](https://cloud.google.com/blog/products/compute/introducing-googles-new-arm-based-cpu) blog.
15
+
Google Axion C4A is a family of Arm-based virtual machines built on Google’s custom Axion CPU, which is based on Arm Neoverse-V2 cores. Designed for high-performance and energy-efficient computing, these virtual machines offer strong performance for modern cloud workloads such as CI/CD pipelines, microservices, media processing, and general-purpose applications.
16
16
17
-
## Puppet
17
+
The C4A series provides a cost-effective alternative to x86 virtual machines while leveraging the scalability and performance benefits of the Arm architecture in Google Cloud.
18
18
19
-
[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.
19
+
To learn more about Google Axion, see the Google blog [Introducing Google Axion Processors, our new Arm-based CPUs](https://cloud.google.com/blog/products/compute/introducing-googles-new-arm-based-cpu).
20
20
21
-
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.
21
+
## Explore Puppet
22
+
[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.
22
23
23
-
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**.
24
+
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
+
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.
24
26
25
-
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.
27
+
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.
26
28
27
29
To learn more, visit the [official Puppet website](https://puppet.com/).
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/puppet-on-gcp/baseline.md
+16-10Lines changed: 16 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,15 @@
1
1
---
2
-
title: Puppet Baseline Testing on Google Axion C4A Arm Virtual Machine
2
+
title: Perform Puppet Baseline testing
3
3
weight: 5
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
7
7
---
8
8
9
-
## Puppet baseline testing on GCP SUSE VMs
9
+
## Overview
10
+
You can perform baseline testing of Puppet on a GCP SUSE Arm64 VM to make sure your installation works as expected. In this Learning Path, you'll verify Puppet and Facter versions, run basic Puppet commands, apply a simple manifest, and confirm that system facts are collected correctly. These steps help you validate your setup before moving on to advanced Puppet tasks.
10
11
11
-
You can perform baseline testing of Puppet on a GCP SUSE Arm64 VM to verify that the installation works correctly. You will check Puppet and Facter versions, run basic Puppet commands, apply a simple manifest, and confirm that system facts are collected accurately.
12
-
13
-
### Verify the Puppet installation
12
+
## Verify the Puppet installation
14
13
15
14
Verify that Puppet and Facter are correctly installed and respond to version checks.
16
15
@@ -49,7 +48,7 @@ The output confirms the Ruby version and architecture:
Check that Puppet responds to commands by running `puppet help`. If the help menu appears, Puppet is working correctly.
55
54
@@ -96,9 +95,9 @@ See 'puppet help <subcommand>' for help on a specific subcommand.
96
95
Puppet v8.10.0
97
96
```
98
97
99
-
###Test a Simple Puppet Manifest
98
+
## Test a simple Puppet manifest
100
99
101
-
Create a basic Puppet script to make sure Puppet can apply configurations. If it successfully creates the test file, your Puppet agent functions as expected.
100
+
Create a basic Puppet script to make sure Puppet can apply configurations. The purpose of this script is to verify that Puppet can successfully apply configurations on your system. If the script runs and creates the specified test file, it confirms that your Puppet agent is functioning correctly:
102
101
103
102
```bash
104
103
cd~
@@ -135,7 +134,7 @@ Output:
135
134
Hello from Puppet on SUSE ARM64!
136
135
```
137
136
138
-
###Check Facter integration
137
+
## Check Facter integration
139
138
140
139
Run `facter` commands to verify that it collects accurate system details, such as the OS and CPU type. This ensures Puppet can gather the facts it needs for automation decisions.
141
140
@@ -207,4 +206,11 @@ The output is similar to the following:
207
206
}
208
207
```
209
208
210
-
With these checks complete, proceed to the Puppet benchmarking section to run workload-focused tests on the GCP SUSE VMs.
209
+
You've completed the essential baseline checks for Puppet on your GCP SUSE Arm64 VM. At this point, you've:
210
+
211
+
- Verified that Puppet, Facter, and Ruby are installed and working
212
+
- Confirmed Puppet responds to commands and applies manifests
213
+
- Validated that Facter collects accurate system facts
214
+
215
+
This progress means your environment is ready for more advanced testing. Next, you'll move on to Puppet benchmarking, where you'll run workload-focused tests to measure performance on your GCP SUSE VM.
This guide explains how to perform a **Puppet standalone benchmark** on a **Google Cloud Platform (GCP) SUSE Linux Arm64 VM**.
13
-
It measures Puppet’s local execution performance without requiring a Puppet Master.
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.
14
13
15
14
16
-
###Prerequisites
15
+
## Prerequisites
17
16
Ensure that Puppet is installed and functioning correctly:
18
17
19
18
```console
@@ -24,7 +23,7 @@ Output:
24
23
8.10.0
25
24
```
26
25
27
-
###Create a Benchmark Manifest
26
+
## Create a benchmark manifest
28
27
Create a directory and a simple manifest file:
29
28
30
29
```console
@@ -41,11 +40,16 @@ notify { 'Benchmark Test':
41
40
}
42
41
```
43
42
44
-
-**notify** is a built-in Puppet resource type that displays a message during catalog application (like a print or log message).
45
-
-**'Benchmark Test'** is the title of the resource — a unique identifier for this notify action.
46
-
-**message => 'Running Puppet standalone benchmark.'** specifies the text message Puppet will print when applying the manifest.
43
+
### Explore the code
47
44
48
-
### Run the Benchmark Command
45
+
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:
46
+
47
+
-`notify` is a built-in Puppet resource type that displays a message during catalog application (like a print or log message).
48
+
-`Benchmark Test` is the title of the resource. It's a unique identifier for this notify action.
49
+
-`message => 'Running Puppet standalone benchmark.'` specifies the text message Puppet prints when applying the manifest.
50
+
51
+
52
+
## Run the benchmark command
49
53
This step runs Puppet in standalone mode using the `apply` command to execute the benchmark manifest locally while measuring execution time and performance statistics.
50
54
51
55
```console
@@ -67,30 +71,34 @@ user 0m0.676s
67
71
sys 0m0.367s
68
72
```
69
73
70
-
### Benchmark Metrics Explanation
71
-
72
-
-**Compiled catalog** → Puppet compiled your manifest into an execution plan.
73
-
-**Applied catalog** → Puppet executed the plan on your system.
74
-
-**real** → Total elapsed wall time (includes CPU + I/O).
75
-
-**user** → CPU time spent in user-space.
76
-
-**sys** → CPU time spent in system calls.
77
-
78
-
### Benchmark results
79
-
The above results were executed on a `c4a-standard-4` (4 vCPU, 16 GB memory) Axiom Arm64 VM in GCP running SuSE:
80
-
81
-
|**Metric / Log**|**Output**|
82
-
|-------------------|------------|
83
-
| Compiled catalog | 0.01 seconds |
84
-
| Environment | production |
85
-
| Applied catalog | 0.01 seconds |
86
-
| real | 0m1.054s |
87
-
| user | 0m0.676s |
88
-
| sys | 0m0.367s |
89
-
90
-
### Puppet benchmarking summary
91
-
92
-
-**Catalog compilation:** Completed in just **0.01 seconds**, showing excellent processing speed on **Arm64**.
93
-
-**Environment:** Executed smoothly under the **production** environment.
94
-
-**Configuration version:** Recorded as **1763407825**, confirming successful version tracking.
95
-
-**Catalog application:** Finished in **0.01 seconds**, demonstrating very low execution latency.
96
-
-**Real time:** Total runtime of **1.054 seconds**, reflecting efficient end.
74
+
## Interpret the benchmark metrics
75
+
Here is a breakdown of the key benchmark metrics you will see in the output:
76
+
77
+
-`Compiled catalog`: Puppet parsed your manifest and generated a catalog, which is an execution plan describing the desired system state. This metric shows how quickly Puppet can process and prepare your configuration for application. Fast compilation times indicate efficient manifest design and good platform performance.
78
+
-`Applied catalog`: Puppet applied the compiled catalog to your VM, making the necessary changes to reach the desired state. This value reflects how quickly Puppet can enforce configuration changes on your Arm64 system. Low application times suggest minimal system overhead and effective resource management.
79
+
-`real`: This is the total elapsed wall-clock time from start to finish of the `puppet apply` command. It includes all time spent running the process, waiting for I/O, and any other delays. Lower real times mean faster end-to-end execution, which is important for automation and scaling.
80
+
-`user`: This measures the amount of CPU time spent executing user-space code (Puppet and Ruby processes) during the benchmark. High user time relative to real time can indicate CPU-bound workloads, while lower values suggest efficient code execution.
81
+
-`sys`: This is the CPU time spent in system (kernel) calls, such as file operations or network access. Lower sys times are typical for lightweight manifests, while higher values may indicate more intensive system interactions or I/O operations.
82
+
83
+
## Benchmark results
84
+
85
+
The following table summarizes the benchmark metrics collected from running Puppet on a `c4a-standard-4` (4 vCPU, 16 GB memory) Axiom Arm64 VM in Google Cloud Platform (GCP) with SUSE Linux. These results provide a baseline for evaluating Puppet’s performance on Arm64 infrastructure. Use this data to compare against other VM types or architectures, and to identify areas for further optimization.
86
+
87
+
| Metric / Log | Output |
88
+
|--------------------|--------------|
89
+
| Compiled catalog | 0.01 seconds |
90
+
| Environment | production |
91
+
| Applied catalog | 0.01 seconds |
92
+
| real | 0m1.054s |
93
+
| user | 0m0.676s |
94
+
| sys | 0m0.367s |
95
+
96
+
These metrics reflect efficient catalog compilation and application times, as well as low system overhead, demonstrating the strong performance of Puppet on Arm64-based GCP VMs.
97
+
98
+
## Review Puppet benchmarking results
99
+
100
+
Confirm that your benchmark output matches the expected metrics for catalog compilation, application, and system resource usage. If your results differ significantly, investigate VM resource allocation, manifest complexity, or system load. Use these metrics to validate Puppet performance on Arm64 and identify opportunities for further optimization.
101
+
102
+
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.
103
+
104
+
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.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/puppet-on-gcp/installation.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ layout: learningpathall
7
7
---
8
8
9
9
## Install Puppet on GCP VM
10
-
This guide walks you through installing Puppet on a **Google Cloud Platform (GCP) SUSE Linux Arm64 VM**, including all dependencies, Ruby setup, and environment preparation.
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.
11
11
12
12
### Install build dependencies and Ruby from source
13
13
Installs all required tools and builds Ruby 3.1.4 from source to ensure compatibility with Puppet.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/puppet-on-gcp/instance.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,10 +34,10 @@ To create a virtual machine based on the C4A instance type:
34
34
- Click **Create** to launch the instance.
35
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:
36
36
37
-

37
+

38
38
39
39
- A window from your browser should come up and you should now see a shell into your VM instance:
40
40
41
-

41
+

0 commit comments