Jenkins on Aruba Cloud
Deploy a production-ready Jenkins CI/CD automation server on Aruba Cloud using Terraform and cloud-init. Java 21 + Jenkins LTS installed from the official APT repository — no manual configuration required.
Provider version: arubacloud/arubacloud
~> 0.5| Terraform: ≥ 1.9
Introduction
Jenkins is the most widely used open-source automation server for building, testing, and deploying software. This example provisions a complete Jenkins LTS stack on Aruba Cloud with:
- A CloudServer VM (CSO4A8 — 4 vCPU / 8 GB) running Jenkins LTS behind an nginx reverse proxy, fully bootstrapped by cloud-init
- Java 21 (OpenJDK) — the recommended JVM for Jenkins LTS
- A dedicated VPC, subnet, and security group via the shared network module
- An Elastic IP for stable external access
- Port 50000 open for remote build agents connecting via the JNLP protocol
- Optional Let's Encrypt HTTPS when a custom domain is provided
The initial admin password is generated automatically and printed in the bootstrap log. The first login completes the Jenkins setup wizard.
Architecture Overview
Jenkins listens on port 8080. nginx proxies all HTTP/HTTPS traffic to Jenkins on the same host, with proxy_buffering off to support pipeline log streaming. Remote agents connect directly on port 50000.
Infrastructure Created
| Resource | Name pattern | Description |
|---|---|---|
arubacloud_project | jenkins-prod | Project container |
arubacloud_vpc | jenkins-prod-vpc | Virtual Private Cloud |
arubacloud_subnet | jenkins-prod-subnet | Basic subnet |
arubacloud_securitygroup | jenkins-prod-vm-sg | Security group |
arubacloud_securityrule | jenkins-prod-vm-ssh | SSH ingress (restricted CIDR) |
arubacloud_securityrule | jenkins-prod-vm-http | HTTP ingress |
arubacloud_securityrule | jenkins-prod-vm-https | HTTPS ingress |
arubacloud_securityrule | jenkins-prod-vm-jnlp | JNLP agent ingress (port 50000) |
arubacloud_elasticip | jenkins-prod-vm-eip | VM public IP |
arubacloud_blockstorage | jenkins-prod-boot | 50 GB boot disk (Performance) |
arubacloud_keypair | jenkins-prod-keypair | SSH public key |
arubacloud_cloudserver | jenkins-prod-vm | CloudServer VM |
VM Sizing Recommendation
| Workload | vCPU | RAM | Disk | Flavor |
|---|---|---|---|---|
| Small team / few pipelines | 4 | 8 GB | 50 GB | CSO4A8 (default) |
| Medium team / many parallel builds | 8 | 16 GB | 100 GB | CSO8A16 |
Jenkins runs builds directly on the controller by default. For production, offload builds to dedicated agents and increase vm_disk_size_gb to store build artifacts and workspace data.
Estimated Monthly Cost
Approximate prices for ITBG-Bergamo, hourly billing.
| Resource | Spec | Est. cost/mo |
|---|---|---|
| CloudServer VM | CSO4A8 — 4 vCPU / 8 GB | ~€36 |
| Boot disk | 50 GB Performance | ~€6 |
| Elastic IP |