简化 Jenkins 在 Linux 的配置流程
一 核心思路
二 一键安装脚本模板 Debian 或 Ubuntu
#!/usr/bin/env bash
set -e
# 0) 前置
export DEBIAN_FRONTEND=noninteractive
JENKINS_VERSION=${JENKINS_VERSION:-"2.414"} # 可按需调整 LTS 版本
JAVA_PKG=${JAVA_PKG:-"openjdk-11-jdk"}
# 1) 安装 Java
sudo apt-get update
sudo apt-get install -y --no-install-recommends "$JAVA_PKG" ca-certificates gnupg wget
# 2) 导入 Jenkins 仓库密钥与源(新版推荐 signed-by)
sudo mkdir -p /usr/share/keyrings
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.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-stable binary/" \
| sudo tee /etc/apt/sources.list.d/jenkins.list >/dev/null
# 3) 安装并启动 Jenkins
sudo apt-get update
sudo apt-get install -y jenkins
sudo systemctl enable --now jenkins
# 4) 输出初始密码路径
echo "Jenkins initialAdminPassword: /var/lib/jenkins/secrets/initialAdminPassword"
三 初始化与加速配置
四 用 Pipeline 固化流程
pipeline {
agent any
tools { jdk 'jdk11' maven 'maven3' } // 与 Global Tool Configuration 名称保持一致
stages {
stage('Checkout') {
steps { git url: 'https://github.com/your-org/your-repo.git', branch: 'main' }
}
stage('Build') {
steps { sh 'mvn -B -DskipTests clean package' }
}
stage('Test') {
steps { sh 'mvn test' }
}
stage('Deploy') {
steps {
sshPublisher(
publishers: [
sshPublisherDesc(
configName: 'prod-ssh',
transfers: [sshTransfer(
sourceFiles: 'target/*.jar',
removePrefix: 'target',
remoteDirectory: '/opt/app'
)]
)
]
)
}
}
}
post {
failure {
emailext (
subject: "构建失败: ${env.JOB_NAME} [${env.BUILD_NUMBER}]",
body: """<p><b>${env.JOB_NAME} [${env.BUILD_NUMBER}]</b> <span style="color:red;">编译失败</span>.</p>
<p>详情: <a href="${env.BUILD_URL}console">${env.BUILD_URL}console</a></p>""",
to: 'team@example.com',
mimeType: 'text/html'
)
}
}
}
五 常见问题与一键回滚