OCI Jenkins Compute Guide

Share

Oracle Cloud Infrastructure Compute Jenkins: Complete Implementation Guide

Introduction

Oracle Cloud Infrastructure Compute Jenkins is a powerful combination used by modern DevOps teams to automate build, test, and deployment pipelines on scalable cloud infrastructure. In real-world projects, I’ve seen multiple clients migrate their CI/CD pipelines from on-prem Jenkins servers to OCI Compute instances to improve scalability, reduce downtime, and integrate better with cloud-native services.

With the latest OCI (Gen 3 architecture), provisioning compute instances for Jenkins has become faster, more secure, and easier to integrate with services like Object Storage, DevOps pipelines, and Kubernetes.

This guide walks you through everything—from architecture to setup and troubleshooting—based on actual implementation experience.


What is OCI Compute Jenkins?

OCI Compute Jenkins refers to running a Jenkins automation server on Oracle Cloud Infrastructure Compute instances.

Instead of hosting Jenkins on local servers, organizations deploy it on OCI virtual machines, enabling:

  • Auto-scaling build environments
  • High availability CI/CD pipelines
  • Integration with cloud-native services
  • Better performance and cost optimization

Real-World Integration Use Cases

1. Automated Application Deployment Pipeline

A fintech client used Jenkins on OCI Compute to:

  • Pull code from Git repositories
  • Build Java applications
  • Deploy to OCI Kubernetes Engine (OKE)

Result: Deployment time reduced from 2 hours to 15 minutes.


2. Multi-Environment CI/CD Setup

A retail company implemented Jenkins pipelines for:

  • Dev → Test → UAT → Production
  • Using different OCI Compute instances per environment

Result: Reduced environment conflicts and improved release quality.


3. Infrastructure Automation using Terraform

In one project, Jenkins was used to:

  • Trigger Terraform scripts
  • Provision OCI resources dynamically

Result: Fully automated infrastructure provisioning.


Architecture / Technical Flow

A typical OCI Jenkins setup follows this flow:

  1. Developer commits code to GitHub / GitLab
  2. Jenkins (hosted on OCI Compute) pulls the code
  3. Jenkins triggers build process
  4. Artifacts stored in OCI Object Storage
  5. Deployment executed to:
    • OCI Compute
    • Kubernetes (OKE)
    • Oracle WebLogic / App servers

Key Components

  • OCI Compute Instance (VM or Bare Metal)
  • Jenkins Server
  • Git Repository
  • OCI Object Storage
  • OCI Load Balancer (optional for HA)
  • OCI DevOps Services (optional integration)

Prerequisites

Before setting up Jenkins on OCI Compute:

1. OCI Account Setup

  • Tenancy configured
  • User with proper IAM policies

2. Networking Setup

  • Virtual Cloud Network (VCN)
  • Public subnet for Jenkins access
  • Security list allowing:
    • Port 22 (SSH)
    • Port 8080 (Jenkins UI)

3. Compute Requirements

Recommended:

  • Shape: VM.Standard.E4.Flex (custom CPU/RAM)
  • OS: Oracle Linux 8 or Ubuntu

4. Required Tools

  • Java (JDK 11 or higher)
  • Jenkins WAR or package
  • Git installed

Step-by-Step Build Process

Step 1 – Create OCI Compute Instance

Navigation Path:

OCI Console → Compute → Instances → Create Instance

Configuration Example:

  • Name: jenkins-server-01
  • Image: Oracle Linux 8
  • Shape: VM.Standard.E4.Flex
  • Public IP: Enabled

Click Create


Step 2 – Configure Security Rules

Navigation Path:

Networking → VCN → Subnet → Security List

Add Ingress Rules:

PortProtocolSource
22TCP0.0.0.0/0
8080TCP0.0.0.0/0

Step 3 – Connect to Instance

 
ssh -i private_key opc@<public-ip>
 

Step 4 – Install Java

 
sudo yum install java-11-openjdk -y
 

Verify:

 
java -version
 

Step 5 – Install Jenkins

 
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo

sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

sudo yum install jenkins -y
 

Step 6 – Start Jenkins Service

 
sudo systemctl start jenkins
sudo systemctl enable jenkins
 

Step 7 – Access Jenkins UI

Open browser:

 
http://<public-ip>:8080
 

Retrieve admin password:

 
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
 

Step 8 – Install Plugins

Recommended plugins:

  • Git Plugin
  • Pipeline Plugin
  • Docker Plugin
  • Kubernetes Plugin
  • OCI CLI Plugin

Step 9 – Configure Jenkins Pipeline

Example Pipeline:

 
pipeline {
agent any

stages {
stage('Checkout') {
steps {
git 'https://github.com/sample-repo.git'
}
}

stage('Build') {
steps {
sh 'mvn clean install'
}
}

stage('Deploy') {
steps {
sh './deploy.sh'
}
}
}
}
 

Testing the Technical Component

Test Scenario

  • Commit code to repository
  • Trigger Jenkins job

Expected Results

  • Code pulled successfully
  • Build executed without errors
  • Artifact generated
  • Deployment completed

Validation Checks

  • Check console output in Jenkins
  • Verify application deployment
  • Validate logs

Common Errors and Troubleshooting

Issue 1: Jenkins Not Accessible

Cause: Port 8080 blocked

Solution:
Check security list and firewall rules


Issue 2: Java Version Mismatch

Cause: Jenkins requires specific Java version

Solution:
Install compatible JDK (11 or above)


Issue 3: Build Failures

Cause: Missing dependencies

Solution:
Install required build tools (Maven, Node, etc.)


Issue 4: High CPU Usage

Cause: Multiple concurrent builds

Solution:

  • Increase compute shape
  • Configure executor limits

Best Practices

1. Use Load Balancer for High Availability

Deploy multiple Jenkins nodes behind OCI Load Balancer.


2. Store Artifacts in OCI Object Storage

Avoid storing large files on Jenkins server.


3. Use IAM Policies Properly

Grant least privilege access:

Example:

 
Allow group DevOps to manage instance-family in compartment Dev
 

4. Enable Backup Strategy

  • Backup Jenkins home directory
  • Use OCI Block Volume backups

5. Use Auto Scaling

For large workloads:

  • Scale compute instances dynamically

6. Secure Jenkins

  • Enable HTTPS
  • Use authentication plugins
  • Restrict IP access

Summary

Running Jenkins on OCI Compute is a practical and scalable solution for modern DevOps pipelines. From my experience, organizations moving to OCI gain:

  • Better scalability
  • Improved performance
  • Stronger security controls
  • Seamless integration with cloud services

The key is designing the architecture properly and following best practices during setup.

For deeper understanding, refer to Oracle official documentation:
https://docs.oracle.com/en/cloud/saas/index.html


FAQs

1. Is Jenkins supported natively in OCI DevOps?

OCI provides DevOps services, but Jenkins is still widely used for custom pipelines and flexibility.


2. Can Jenkins integrate with OCI Kubernetes?

Yes, Jenkins can deploy applications directly to OCI Kubernetes Engine (OKE) using plugins and scripts.


3. How to scale Jenkins in OCI?

You can:

  • Use multiple compute instances
  • Configure distributed builds (master-agent setup)
  • Use auto-scaling groups

Share

Leave a Reply

Your email address will not be published. Required fields are marked *