Skip to content

Commit 7fde741

Browse files
committed
Deploy Jenkins on Arm64 Cloud Platforms (Azure & GCP)
Signed-off-by: odidev <odidev@puresoftware.com>
1 parent c9ca37a commit 7fde741

32 files changed

+1014
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
title: Deploy Jenkins on Arm64 Cloud Platforms (Azure & GCP)
3+
4+
minutes_to_complete: 30
5+
6+
who_is_this_for: This learning path is intended for software developers deploying and optimizing Jenkins workloads on Linux/Arm64 environments, specifically on Microsoft Azure Cobalt 100 Arm processors and Google Cloud C4A virtual machines powered by Axion processors.
7+
8+
learning_objectives:
9+
- Provision an Azure Arm64 virtual machine using the Azure console, with Ubuntu Pro 24.04 LTS as the base image
10+
- Provision an Arm-based SUSE SLES virtual machine on Google Cloud (C4A with Axion processors)
11+
- Install the latest stable Jenkins LTS with OpenJDK 17 on an Arm64 VM
12+
- Validate Jenkins installation through service checks, UI access, and Arm-native pipeline execution
13+
- Execute Arm-native Jenkins pipelines to verify correct runtime behavior
14+
- Implement real-world CI use cases on Arm64, including Docker-based pipelines
15+
16+
prerequisites:
17+
- A [Microsoft Azure](https://azure.microsoft.com/) account with access to Cobalt 100 based instances (Dpsv6).
18+
- A [Google Cloud Platform](https://cloud.google.com/) account with access to Arm-based VM instances.
19+
- Basic understanding of Linux command line.
20+
- Familiarity with CI/CD concepts and [Jenkins fundamentals](https://www.jenkins.io/doc/book/pipeline/).
21+
22+
author: Pareena Verma
23+
24+
##### Tags
25+
skilllevels: Advanced
26+
subjects: CI-CD
27+
28+
armips:
29+
- Neoverse
30+
31+
tools_software_languages:
32+
- Jenkins
33+
- OpenJDK 17
34+
- Docker
35+
- Groovy (Jenkins Pipeline)
36+
37+
operatingsystems:
38+
- Linux
39+
40+
further_reading:
41+
- resource:
42+
title: Jenkins Official Documentation
43+
link: https://www.jenkins.io/doc/
44+
type: documentation
45+
- resource:
46+
title: Jenkins Pipeline Syntax
47+
link: https://www.jenkins.io/doc/book/pipeline/syntax/
48+
type: documentation
49+
- resource:
50+
title: Jenkins on Azure
51+
link: https://learn.microsoft.com/en-us/azure/developer/jenkins/
52+
type: documentation
53+
- resource:
54+
title: Jenkins on Google Cloud
55+
link: https://cloud.google.com/jenkins
56+
type: documentation
57+
58+
# ================================================================================
59+
# FIXED, DO NOT MODIFY
60+
# ================================================================================
61+
weight: 1
62+
layout: "learningpathall"
63+
learning_path_main_page: "yes"
64+
---
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
# ================================================================================
3+
# FIXED, DO NOT MODIFY THIS FILE
4+
# ================================================================================
5+
weight: 21 # Set to always be larger than the content in this path to be at the end of the navigation.
6+
title: "Next Steps" # Always the same, html page title.
7+
layout: "learningpathall" # All files under learning paths have this same wrapper for Hugo processing.
8+
---
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
---
2+
title: Install Jenkins on Azure Ubuntu Arm64 VM
3+
weight: 4
4+
5+
### FIXED, DO NOT MODIFY
6+
layout: learningpathall
7+
---
8+
9+
10+
## Install Jenkins on Azure Cobalt 100
11+
This guide explains how to install **Jenkins** on an **Azure Ubuntu 24.04 LTS Arm64 VM**.
12+
13+
At the end of this guide, Jenkins will be:
14+
15+
* Installed and running as a system service
16+
* Accessible on **port 8080**
17+
* Verified on **Arm64 (aarch64)** with **Java 17**
18+
19+
### System Preparation
20+
Updates the OS and installs basic tools required to securely download and manage Jenkins packages.
21+
22+
```console
23+
sudo apt update && sudo apt upgrade -y
24+
sudo apt install -y curl wget gnupg ca-certificates
25+
```
26+
27+
These tools are required to securely download Jenkins packages.
28+
29+
### Install Java 17 (Required)
30+
Install the supported Java runtime required for running Jenkins LTS reliably.
31+
Jenkins LTS officially supports **Java 17**.
32+
33+
```console
34+
sudo apt install -y openjdk-17-jdk
35+
```
36+
37+
### Verify Java Installation
38+
Confirms that Java 17 is installed correctly and available in the system PATH.
39+
40+
```console
41+
java -version
42+
```
43+
44+
You should see an output similar to:
45+
```output
46+
openjdk version "17.0.17" 2025-10-21
47+
OpenJDK Runtime Environment (build 17.0.17+10-Ubuntu-124.04)
48+
OpenJDK 64-Bit Server VM (build 17.0.17+10-Ubuntu-124.04, mixed mode, sharing)
49+
```
50+
51+
### Add Jenkins Official Repository (Stable LTS)
52+
Add the official Jenkins signing key to ensure package authenticity and security.
53+
54+
```console
55+
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | \
56+
sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
57+
```
58+
59+
This key ensures Jenkins packages are trusted.
60+
61+
### Add Jenkins Stable Repository
62+
Configure the system to download Jenkins LTS packages from the official Jenkins repository.
63+
64+
```console
65+
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
66+
https://pkg.jenkins.io/debian-stable binary/ | \
67+
sudo tee /etc/apt/sources.list.d/jenkins.list
68+
```
69+
70+
### Install Jenkins (Latest Stable LTS)
71+
Install the latest stable Jenkins Long-Term Support release on the Arm64 VM.
72+
73+
```console
74+
sudo apt update
75+
sudo apt install -y jenkins
76+
```
77+
78+
This installs the **latest Jenkins LTS available** at install time.
79+
80+
### Start and Enable Jenkins Service
81+
Starts Jenkins immediately and enables it to launch automatically after system reboot.
82+
83+
```console
84+
sudo systemctl enable jenkins
85+
sudo systemctl start jenkins
86+
```
87+
88+
### Verify Service Status
89+
Confirms that the Jenkins service is running successfully without errors.
90+
91+
```console
92+
sudo systemctl status jenkins
93+
```
94+
95+
You should see an output similar to:
96+
```output
97+
Active: active (running)
98+
```
99+
100+
### Verify Jenkins Version
101+
Validates the installed Jenkins LTS version to ensure correct deployment on Arm64.
102+
103+
```console
104+
jenkins --version
105+
```
106+
107+
You should see an output similar to:
108+
```output
109+
2.528.3
110+
```
111+
This confirm the installed Jenkins LTS version.
112+
113+
This installation confirm Jenkins LTS is successfully deployed on an Azure Ubuntu Arm64 VM.
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
title: Create an Arm based cloud virtual machine using Microsoft Cobalt 100 CPU
3+
weight: 3
4+
5+
### FIXED, DO NOT MODIFY
6+
layout: learningpathall
7+
---
8+
9+
## Introduction
10+
11+
There are several ways to create an Arm-based Cobalt 100 virtual machine: the Microsoft Azure console, the Azure CLI tool, or using your choice of IaC (Infrastructure as Code). This guide will use the Azure console to create a virtual machine with Arm-based Cobalt 100 Processor.
12+
13+
This learning path focuses on the general-purpose virtual machine of the D series. Please read the guide on [Dpsv6 size series](https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/general-purpose/dpsv6-series) offered by Microsoft Azure.
14+
15+
If you have never used the Microsoft Cloud Platform before, please review the microsoft [guide to Create a Linux virtual machine in the Azure portal](https://learn.microsoft.com/en-us/azure/virtual-machines/linux/quick-create-portal?tabs=ubuntu).
16+
17+
#### Create an Arm-based Azure Virtual Machine
18+
19+
Creating a virtual machine based on Azure Cobalt 100 is no different from creating any other virtual machine in Azure. To create an Azure virtual machine, launch the Azure portal and navigate to "Virtual Machines".
20+
1. Select "Create", and click on "Virtual Machine" from the drop-down list.
21+
2. Inside the "Basic" tab, fill in the Instance details such as "Virtual machine name" and "Region".
22+
3. Choose the image for your virtual machine (for example, Ubuntu Pro 24.04 LTS) and select “Arm64” as the VM architecture.
23+
4. In the “Size” field, click on “See all sizes” and select the D-Series v6 family of virtual machines. Select “D4ps_v6” from the list.
24+
25+
![Azure portal VM creation — Azure Cobalt 100 Arm64 virtual machine (D4ps_v6) alt-text#center](images/instance.png "Figure 1: Select the D-Series v6 family of virtual machines")
26+
27+
5. Select "SSH public key" as an Authentication type. Azure will automatically generate an SSH key pair for you and allow you to store it for future use. It is a fast, simple, and secure way to connect to your virtual machine.
28+
6. Fill in the Administrator username for your VM.
29+
7. Select "Generate new key pair", and select "RSA SSH Format" as the SSH Key Type. RSA could offer better security with keys longer than 3072 bits. Give a Key pair name to your SSH key.
30+
8. In the "Inbound port rules", select HTTP (80) and SSH (22) as the inbound ports.
31+
32+
![Azure portal VM creation — Azure Cobalt 100 Arm64 virtual machine (D4ps_v6) alt-text#center](images/instance1.png "Figure 2: Allow inbound port rules")
33+
34+
9. Click on the "Review + Create" tab and review the configuration for your virtual machine. It should look like the following:
35+
36+
![Azure portal VM creation — Azure Cobalt 100 Arm64 virtual machine (D4ps_v6) alt-text#center](images/ubuntu-pro.png "Figure 3: Review and Create an Azure Cobalt 100 Arm64 VM")
37+
38+
10. Finally, when you are confident about your selection, click on the "Create" button, and click on the "Download Private key and Create Resources" button.
39+
40+
![Azure portal VM creation — Azure Cobalt 100 Arm64 virtual machine (D4ps_v6) alt-text#center](images/instance4.png "Figure 4: Download Private key and Create Resources")
41+
42+
11. Your virtual machine should be ready and running in no time. You can SSH into the virtual machine using the private key, along with the Public IP details.
43+
44+
![Azure portal VM creation — Azure Cobalt 100 Arm64 virtual machine (D4ps_v6) alt-text#center](images/final-vm.png "Figure 5: VM deployment confirmation in Azure portal")
45+
46+
{{% notice Note %}}
47+
48+
To learn more about Arm-based virtual machine in Azure, refer to “Getting Started with Microsoft Azure” in [Get started with Arm-based cloud instances](/learning-paths/servers-and-cloud-computing/csp/azure).
49+
50+
{{% /notice %}}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
title: Technology Stack Overview
3+
4+
weight: 2
5+
6+
layout: "learningpathall"
7+
---
8+
9+
## Cobalt 100 Arm-based processor
10+
11+
Azure’s Cobalt 100 is built on Microsoft's first-generation, in-house Arm-based processor: the Cobalt 100. Designed entirely by Microsoft and based on Arm’s Neoverse N2 architecture, this 64-bit CPU delivers improved performance and energy efficiency across a broad spectrum of cloud-native, scale-out Linux workloads. These include web and application servers, data analytics, open-source databases, caching systems, and other related technologies. Running at 3.4 GHz, the Cobalt 100 processor allocates a dedicated physical core for each vCPU, ensuring consistent and predictable performance.
12+
13+
To learn more about Cobalt 100, refer to the blog [Announcing the preview of new Azure virtual machine based on the Azure Cobalt 100 processor](https://techcommunity.microsoft.com/blog/azurecompute/announcing-the-preview-of-new-azure-vms-based-on-the-azure-cobalt-100-processor/4146353).
14+
15+
## Google Axion C4A Arm instances in Google Cloud
16+
17+
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.
18+
19+
The C4A series offers a cost-effective alternative to x86 virtual machines, leveraging the scalability and performance benefits of the Arm architecture in Google Cloud.
20+
21+
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.
22+
23+
## Jenkins
24+
Jenkins is an open-source automation server used to build, test, and deploy software through continuous integration and continuous delivery (CI/CD). It automates development workflows and integrates with a wide range of tools and platforms via its plugin ecosystem.
25+
26+
Learn more from the [Jenkins official website](https://www.jenkins.io/) and the [official documentation](https://www.jenkins.io/doc/).

0 commit comments

Comments
 (0)