๏ธ Jenkins CI/CD
If you like this project, consider supporting me on Buy Me a Coffee โ๏ธ
tags:
- dev-tools
- devops
-
sysadmin
Jenkins Sysadmin Cheatsheet
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
- 2. Jenkins CLI
- 3. Groovy Script Console
- 4. Pipeline Syntax
- 5. Security
- 6. Logrotate Configuration
- Official Documentation
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
- Linux (Systemd):
/var/log/jenkins/jenkins.log - Windows:
%JENKINS_HOME%\jenkins.out
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
copytruncateas Jenkins keeps the log file handle open. ะัะฟะพะปัะทัะนัะตcopytruncate, ัะฐะบ ะบะฐะบ Jenkins ะดะตัะถะธั ัะฐะนะป ะปะพะณะฐ ะพัะบััััะผ.
Official Documentation
- Jenkins: https://www.jenkins.io/doc/
- Jenkins Pipeline Syntax: https://www.jenkins.io/doc/book/pipeline/syntax/
- Jenkins Plugins Index: https://plugins.jenkins.io/
- Jenkins CLI: https://www.jenkins.io/doc/book/managing/cli/