linux

如何简化Jenkins Linux配置流程

小樊
34
2025-11-20 13:50:28
栏目: 智能运维

简化 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'
      )
    }
  }
}

五 常见问题与一键回滚

0
看了该问题的人还看了