一 环境准备与安装
sudo apt update && sudo apt install -y openjdk-11-jdksudo wget -O /usr/share/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian-stable/jenkins.io.key
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
sudo apt update
sudo apt install -y jenkins
sudo systemctl enable --now jenkinssudo cat /var/lib/jenkins/secrets/initialAdminPassword二 系统级定制与性能优化
HTTP_PORT=9090
JENKINS_HOME=/data/jenkins
JENKINS_JAVA_OPTIONS="-Xms512m -Xmx1024m -Djava.awt.headless=true"
sudo systemctl restart jenkinssudo apt install -y nginxserver {
listen 80;
server_name jenkins.example.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled && sudo systemctl reload nginxsudo ufw allow 80,443,8080/tcp && sudo ufw reload/var/log/jenkins/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0644 jenkins jenkins
sharedscripts
postrotate
if [ -f /var/run/jenkins/jenkins.pid ]; then
kill -USR1 $(cat /var/run/jenkins/jenkins.pid)
fi
endscript
}
三 安全加固与访问控制
四 界面与流水线定制
pipeline {
agent any
tools {
maven 'Maven-3.8.6' // 需在 Global Tool Configuration 中预先配置
jdk 'OpenJDK-11'
}
stages {
stage('Checkout') {
steps { git url: 'git@github.com:org/repo.git', branch: 'main' }
}
stage('Build') {
steps { sh 'mvn -B -DskipTests clean package' }
}
stage('Test') {
steps { sh 'mvn test' }
}
stage('Archive') {
steps { archiveArtifacts artifacts: 'target/*.jar', fingerprint: true }
}
}
}
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)
五 运维与备份恢复