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
+5-10Lines changed: 5 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,26 +1,21 @@
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
17
14
18
15
prerequisites:
19
16
- A [Google Cloud Platform (GCP)](https://cloud.google.com/free) account with billing enabled
20
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 Arm-based Google Axion and 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
+
## Automate and optimize cloud deployments on Arm
10
+
11
+
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.
12
+
13
+
## Explore Google Axion C4A Arm instances on Google Cloud
10
14
11
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.
12
16
13
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.
14
18
15
-
To learn more about Google Axion, refer to the [Introducing Google Axion Processors, our new Arm-based CPUs](https://cloud.google.com/blog/products/compute/introducing-googles-new-arm-based-cpu) blog.
16
-
17
-
## Puppet
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).
18
20
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.
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.
20
23
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.
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.
22
25
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**.
26
+
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
27
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.
28
+
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
29
27
30
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
+19-11Lines changed: 19 additions & 11 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~
@@ -124,7 +123,7 @@ Notice: /Stage[main]/Main/File[/tmp/puppet_test.txt]/ensure: defined content as
124
123
Notice: Applied catalog in 0.01 seconds
125
124
```
126
125
127
-
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:
128
127
129
128
```console
130
129
cat /tmp/puppet_test.txt
@@ -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,13 @@ 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
+
## What you've accomplished and what's next
210
+
211
+
You've completed the essential baseline checks for Puppet on your GCP SUSE Arm64 VM. At this point, you've:
212
+
213
+
- Verified that Puppet, Facter, and Ruby are installed and working
214
+
- Confirmed Puppet responds to commands and applies manifests
215
+
- Validated that Facter collects accurate system facts
216
+
217
+
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 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.
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,40 @@ 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.
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.
0 commit comments