Jenkins

Installation

Prerequisites

# Update package manager
sudo apt update
 
# Install Java (Jenkins requires Java 11 or higher)
sudo apt install openjdk-11-jdk -y
 
# Verify Java installation
java -version

Ubuntu/Debian

# Add Jenkins repository GPG key
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
 
# Add Jenkins repository
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
 
# Update package manager
sudo apt update
 
# Install Jenkins
sudo apt install jenkins -y
 
# Start and enable Jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins
 
# Verify installation
sudo systemctl status jenkins

CentOS/RHEL

# Add Jenkins repository
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
 
# Add repository key
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
 
# Install Jenkins
sudo yum install jenkins -y
 
# Start and enable Jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins

Docker Installation

# Create Jenkins container
docker run -d --name jenkins \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  jenkins/jenkins:latest

Initial Setup

# Get initial admin password
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
 
# Access Jenkins at http://server-ip:8080

Firewall Configuration

# UFW (Ubuntu)
sudo ufw allow 8080
sudo ufw allow 50000
 
# Firewalld (CentOS)
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=50000/tcp
sudo firewall-cmd --reload

Service Management

# Start Jenkins
sudo systemctl start jenkins
 
# Stop Jenkins
sudo systemctl stop jenkins
 
# Restart Jenkins
sudo systemctl restart jenkins
 
# Check status
sudo systemctl status jenkins
 
# View logs
sudo tail -f /var/log/jenkins/jenkins.log

Configuration

Jenkins Home Directory

# Default Jenkins home
/var/lib/jenkins
 
# Change Jenkins port
sudo nano /etc/default/jenkins
# Edit: PORT=8080

Backup Jenkins Configuration

# Backup Jenkins home directory
sudo tar -czf jenkins-backup.tar.gz /var/lib/jenkins
 
# Restore from backup
sudo tar -xzf jenkins-backup.tar.gz -C /
sudo systemctl restart jenkins

Plugin Management

Essential Plugins

- SSH Agent
- GitLab / GitHub plugin
- Pipeline (Declarative Pipeline)
- Email Extension Plugin
- Blue Ocean
- Slack Notification

Install Plugin via CLI

# Install plugin
java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin <plugin-name>
 
# Restart Jenkins
java -jar jenkins-cli.jar -s http://localhost:8080 restart

Git Integration

GitLab / GitHub Webhook URL

http://username:api-token@jenkins-server:8080/project/job-name

Setup Credentials

  1. Manage Jenkins → Manage Credentials
  2. Add new credentials (SSH Key, Username/Password, API Token)
  3. Use in Jenkins pipeline/job

Uninstall

Ubuntu/Debian

# Stop Jenkins
sudo systemctl stop jenkins
 
# Remove Jenkins
sudo apt remove jenkins -y
sudo apt autoremove -y
 
# Remove Jenkins data
sudo rm -rf /var/lib/jenkins
sudo rm -rf /var/log/jenkins

CentOS/RHEL

# Stop Jenkins
sudo systemctl stop jenkins
 
# Remove Jenkins
sudo yum remove jenkins -y
 
# Remove Jenkins data
sudo rm -rf /var/lib/jenkins
sudo rm -rf /var/log/jenkins