๏ธ Jenkins CI/CD

If you like this project, consider supporting me on Buy Me a Coffee โ˜•๏ธ


tags:

Description: Jenkins is an open-source automation server for building, testing, and deploying software. It supports 1800+ plugins for integration with virtually any tool in the CI/CD toolchain. Written in Java, it runs as a standalone servlet or in containers. Jenkins โ€” ัั‚ะพ open-source ัะตั€ะฒะตั€ ะฐะฒั‚ะพะผะฐั‚ะธะทะฐั†ะธะธ ะดะปั ัะฑะพั€ะบะธ, ั‚ะตัั‚ะธั€ะพะฒะฐะฝะธั ะธ ะดะตะฟะปะพั ะŸะž. ะŸะพะดะดะตั€ะถะธะฒะฐะตั‚ 1800+ ะฟะปะฐะณะธะฝะพะฒ ะดะปั ะธะฝั‚ะตะณั€ะฐั†ะธะธ ั ะปัŽะฑั‹ะผ ะธะฝัั‚ั€ัƒะผะตะฝั‚ะพะผ CI/CD.

Status: Actively maintained. Alternatives: GitHub Actions (SaaS, GitHub-native), GitLab CI/CD (built-in), Drone CI (container-native), Woodpecker CI (Drone fork, FOSS), Tekton (Kubernetes-native). Role: DevOps / Build Engineer URL: http://<HOST>:8080


๐Ÿ“š Table of Contents


1. Service Management

Default Ports

Port Description (EN / RU)
8080 Web UI / ะ’ะตะฑ-ะธะฝั‚ะตั€ั„ะตะนั
50000 Agent (JNLP) connection / ะŸะพะดะบะปัŽั‡ะตะฝะธะต ะฐะณะตะฝั‚ะพะฒ

Systemd / Systemd

/etc/systemd/system/jenkins.service

systemctl start jenkins   # Start / ะ—ะฐะฟัƒัะบ
systemctl stop jenkins    # Stop / ะžัั‚ะฐะฝะพะฒะบะฐ
systemctl restart jenkins # Restart / ะŸะตั€ะตะทะฐะฟัƒัะบ
systemctl status jenkins  # Status / ะกั‚ะฐั‚ัƒั

Logs


2. Jenkins CLI

Download CLI jar from: http://<HOST>:8080/jnlpJars/jenkins-cli.jar

# General Syntax
java -jar jenkins-cli.jar -s http://<HOST>:8080/ -auth <USER>:<TOKEN> <COMMAND>

Common Commands

# Restart Jenkins (Safe)
java -jar jenkins-cli.jar -s ... safe-restart

# List Jobs
java -jar jenkins-cli.jar -s ... list-jobs

# Build Job
java -jar jenkins-cli.jar -s ... build <JOB_NAME> -s -v

# Install Plugin
java -jar jenkins-cli.jar -s ... install-plugin <PLUGIN_ID>

3. Groovy Script Console

URL: http://<HOST>:8080/script

Useful Scripts

Print System Info:

println("Jenkins Version: " + jenkins.model.Jenkins.instance.version)
println("Home: " + System.getenv("JENKINS_HOME"))

Disable Security (Emergency Only!):

def instance = jenkins.model.Jenkins.getInstance()
instance.setSecurityRealm(hudson.security.SecurityRealm.NO_AUTHENTICATION)
instance.setAuthorizationStrategy(hudson.security.AuthorizationStrategy.UNSECURED)
instance.save()

[!CAUTION] This completely disables authentication. Use only as a last resort when locked out. Re-enable security immediately after access is restored. ะญั‚ะพ ะฟะพะปะฝะพัั‚ัŒัŽ ะพั‚ะบะปัŽั‡ะฐะตั‚ ะฐัƒั‚ะตะฝั‚ะธั„ะธะบะฐั†ะธัŽ. ะ˜ัะฟะพะปัŒะทัƒะนั‚ะต ั‚ะพะปัŒะบะพ ะบะฐะบ ะบั€ะฐะนะฝัŽัŽ ะผะตั€ัƒ.


4. Pipeline Syntax

Basic Structure

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building...'
                sh 'make'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                sh 'make check'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
            }
        }
    }
    post {
        always {
            echo 'Cleanup...'
        }
    }
}

Agents (Docker)

agent {
    docker {
        image 'maven:3.8.1-adoptopenjdk-11'
        args '-v /tmp:/tmp'
    }
}

5. Security

User Database

Located in $JENKINS_HOME/users/.

Reset Admin Password

If locked out, edit $JENKINS_HOME/config.xml and change <useSecurity>true</useSecurity> to false. Restart Jenkins. ะ•ัะปะธ ะทะฐะฑะปะพะบะธั€ะพะฒะฐะฝั‹, ะธะทะผะตะฝะธั‚ะต true ะฝะฐ false ะฒ ั‚ะตะณะต <useSecurity>. ะŸะตั€ะตะทะฐะฟัƒัั‚ะธั‚ะต Jenkins.


6. Logrotate Configuration

/etc/logrotate.d/jenkins

/var/log/jenkins/*.log {
    daily
    rotate 14
    compress
    delaycompress
    missingok
    notifempty
    create 640 jenkins jenkins
    copytruncate
}

[!TIP] Use copytruncate as Jenkins keeps the log file handle open. ะ˜ัะฟะพะปัŒะทัƒะนั‚ะต copytruncate, ั‚ะฐะบ ะบะฐะบ Jenkins ะดะตั€ะถะธั‚ ั„ะฐะนะป ะปะพะณะฐ ะพั‚ะบั€ั‹ั‚ั‹ะผ.


Official Documentation

On this page

sysadmin Jenkins Sysadmin Cheatsheet ๐Ÿ“š Table of Contents 1. Service Management Default Ports Systemd / Systemd Logs 2. Jenkins CLI Common Commands 3. Groovy Script Console Useful Scripts 4. Pipeline Syntax Basic Structure Agents (Docker) 5. Security User Database Reset Admin Password 6. Logrotate Configuration Official Documentation