在 Ubuntu 上落地 Jenkins 持续集成
一 环境准备与安装
sudo apt update && sudo apt install -y openjdk-17-jdkjava -versioncurl -fsSL https://pkg.jenkins.io/debian/jenkins.io-2023.key \
| sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian binary/ \
| sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt update
sudo apt install -y jenkins
sudo systemctl start jenkins && sudo systemctl enable jenkinssudo systemctl status jenkinssudo ufw allow 8080 && sudo ufw status二 初始化与安全加固
http://<服务器IP>:8080sudo cat /var/lib/jenkins/secrets/initialAdminPassword三 工具链与全局配置
sudo apt install -y git maven(Node.js 可按需安装)四 创建任务与流水线示例
H/5 * * * * 每 5 分钟)mvn clean packagetarget/*.jar)、发送邮件pipeline {
agent any
tools {
maven 'Maven 3.8' // 需在 Global Tool Configuration 中定义
jdk 'OpenJDK 17' // 需在 Global Tool Configuration 中定义
}
stages {
stage('Checkout') {
steps { git url: 'https://github.com/your-org/your-app.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 }
}
}
post {
always { cleanWs() }
failure { echo 'Build failed!' }
success { echo 'Build succeeded!' }
}
}
pipeline {
agent any
stages {
stage('Checkout') {
steps { git url: 'https://github.com/your-org/your-pyapp.git', branch: 'main' }
}
stage('Install') {
steps { sh 'pip install -r requirements.txt' }
}
stage('Test') {
steps { sh 'pytest --junitxml=reports/results.xml' }
}
stage('Archive') {
steps { junit 'reports/results.xml' }
}
}
}
五 触发与部署实践
http://<jenkins-server>:8080/github-webhook/ENV,默认值 dev)echo "当前环境:$ENV" 或按 $ENV 选择部署脚本/配置ssh/scp 将产物发布到目标主机HTTP_PORT 后重启 sudo systemctl restart jenkinssu - jenkins 后 ssh-keygen -t rsa)signed-by 方式导入