Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ cascade:

minutes_to_complete: 30

who_is_this_for: This learning path is intended for software developers deploying and optimizing Puppet workloads on Linux/Arm64 environments, specifically using Google Cloud C4A virtual machines powered by Axion processors.
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.

learning_objectives:
- Provision an Arm-based SUSE SLES virtual machine on Google Cloud (C4A with Axion processors)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,47 +6,62 @@ weight: 5
layout: learningpathall
---

## Puppet Baseline Testing on GCP SUSE VMs
In this guide, you will 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.
## Puppet baseline testing on GCP SUSE VMs

### Verify Puppet Installation
Verify that Puppet and Facter are correctly installed and respond to version checks:
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.

### Verify the Puppet installation

Verify that Puppet and Facter are correctly installed and respond to version checks.

Check the Puppet version:

Version Check:
```console
puppet --version
```
Output:

The output shows the installed version:

```output
8.10.0
```
Version Check:

Check the Facter version:
```console
facter --version
```
Output:

The output shows the Facter version:

```output
4.10.0
```
Version Check:

Check the Ruby version, which is a dependency for Puppet:

```console
ruby -v
```
Output:

The output confirms the Ruby version and architecture:

```output
ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [aarch64-linux]
```

### Run a Simple Puppet Command
Check that Puppet responds to commands by running puppet help. If the help menu appears, Puppet is working correctly.
### Run a simple Puppet command

Check that Puppet responds to commands by running `puppet help`. If the help menu appears, Puppet is working correctly.

Run the `puppet help` command:

```console
puppet help
```

Output:
The output displays the help menu, confirming Puppet is operational:

```console
```output
Usage: puppet <subcommand> [options] <action> [options]

Available subcommands:
Expand Down Expand Up @@ -82,7 +97,8 @@ Puppet v8.10.0
```

### Test a Simple Puppet Manifest
Create and run a basic Puppet script to make sure Puppet can apply configurations. If it successfully creates the test file, your Puppet agent functions as expected.

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.

```bash
cd ~
Expand All @@ -93,19 +109,21 @@ file { '/tmp/puppet_test.txt':
}
EOF
```

Run the script:

```console
puppet apply test.pp
```

You should see an output similar to:

```output
Notice: Compiled catalog for danson-puppet-2.c.arm-deveco-stedvsl-prd.internal in environment production in 0.01 seconds
Notice: /Stage[main]/Main/File[/tmp/puppet_test.txt]/ensure: defined content as '{sha256}bcf972b61979afe69626549b3f3f30798aeb50b359e76603a36e96b2abbe73c0'
Notice: Applied catalog in 0.01 seconds
```

**Then verify:**

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

```console
Expand All @@ -117,14 +135,15 @@ Output:
Hello from Puppet on SUSE ARM64!
```

### Check Facter Integration
Run `facter` commands to verify that it collects accurate system details like OS and CPU type. This ensures Puppet can gather the facts it needs for automation decisions.
### Check Facter integration

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.

OS Check:
Check the OS:
```console
facter os
```
Output:
The output is similar to the following:
```output
{
architecture => "aarch64",
Expand All @@ -151,19 +170,27 @@ Output:
}
}
```
Architecture Check:

Check the architecture:

```console
facter architecture
```
Output:

The output is:

```output
aarch64
```
Processors Check:

Check the processors:

```console
facter processors
```
Output:

The output is similar to the following:

```output
{
cores => 4,
Expand All @@ -179,4 +206,5 @@ Output:
threads => 1
}
```
With these checks complete, proceed to the Puppet benchmarking section to run workload‑focused tests on the GCP SUSE VMs.

With these checks complete, proceed to the Puppet benchmarking section to run workload-focused tests on the GCP SUSE VMs.
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,9 @@ Create a directory and a simple manifest file:
cd ~
mkdir -p ~/puppet-benchmark
cd ~/puppet-benchmark
vi benchmark.pp
```

Add the following content to the `benchmark.pp`:
Use an editor to create the following content in a file named `benchmark.pp`:

```puppet
notify { 'Benchmark Test':
Expand Down