首页主机资讯Jenkins在Debian上的自动化部署流程是怎样的

Jenkins在Debian上的自动化部署流程是怎样的

时间2026-01-17 09:09:04发布访客分类主机资讯浏览951
导读:在 Debian 上搭建 Jenkins 自动化部署流程 一 环境准备与安装 安装 Java(推荐 OpenJDK 11 或 17):sudo apt update && sudo apt install -y openj...

在 Debian 上搭建 Jenkins 自动化部署流程

一 环境准备与安装

  • 安装 Java(推荐 OpenJDK 1117):sudo apt update & & sudo apt install -y openjdk-11-jdk(或 openjdk-17-jdk);验证:java -version。
  • 添加 Jenkins 官方 APT 仓库 并安装:
    wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
    echo deb 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 jenkins
  • 访问 http://< 服务器IP> :8080,解锁 Jenkins:sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  • 防火墙放行端口(如使用 UFW):sudo ufw allow 8080/tcp;如启用 Agent 通信,放行 50000/tcp

二 初始化与安全配置

  • 插件安装:进入 Manage Jenkins → Plugin Manager,安装 Pipeline、GitHub Integration、Docker Pipeline、SSH Pipeline Steps/Publish Over SSH、Credentials Binding 等常用插件。
  • 更新站点镜像(可选,提升国内下载速度):进入 Manage Jenkins → Plugin Manager → Advanced,将 Update Site URL 替换为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
  • 安全配置:启用安全(如 Logged-in users can do anything),创建管理员账户,禁用匿名访问。

三 凭据与工具配置

  • 凭据管理(Manage Jenkins → Manage Credentials → System → Global credentials):
    • SSH 私钥(类型:SSH Username with private key):用于拉取私有仓库与远程部署。
    • Docker Hub 账号(类型:Username with password 或 Docker Credentials):用于推送镜像。
    • 代码仓库 Deploy Key(SSH,添加到 GitHub/GitLab Deploy Keys)。
  • 全局工具(Manage Jenkins → Global Tool Configuration):配置 JDK、Git、Maven/NodeJS 等工具路径或自动安装。

四 创建流水线并编写 Jenkinsfile

  • 新建任务:New Item → Pipeline → 勾选 Pipeline script from SCM → 选择 Git,填写仓库 URL 与凭据。
  • 典型流程示例(声明式 Pipeline):
    • 拉取代码 → 构建(如 mvn/ npm)→ 测试 → 打包 → 部署。
    • 部署方式可选:
      • 通过 SSH 将产物(如 target/*.jar)传输到目标服务器并启动;
      • 使用 Docker 构建镜像、推送到仓库,远程主机拉取并运行容器。
  • 参考 Jenkinsfile(按项目替换占位符):
    pipeline {
    agent any
    environment {
    DOCKER_IMAGE = “your-dockerhub-username/your-app:${ BUILD_NUMBER} ”
    REMOTE_SERVER = “user@your-server-ip”
    REMOTE_DIR = “/opt/app”
    }
    stages {
    stage(‘Checkout’) { steps { git branch: ‘main’, url: ‘https://github.com/your/repo.git’ } }
    stage(‘Build’) { steps { sh ‘mvn -B -DskipTests clean package’ } }
    stage(‘Test’) { steps { sh ‘mvn test’ } }
    stage(‘Build & Push Image’) {
    steps {
    script {
    dockerImage = docker.build(env.DOCKER_IMAGE)
    docker.withRegistry(‘https://registry.hub.docker.com’, ‘dockerhub-credential-id’) {
    dockerImage.push()
    }
    }
    }
    }
    stage(‘Deploy Remote’) {
    steps {
    sshagent([‘ssh-credential-id’]) {
    sh “”"
    ssh ${ REMOTE_SERVER} “docker pull ${ DOCKER_IMAGE} ”
    ssh ${ REMOTE_SERVER} “docker stop your-app || true”
    ssh ${ REMOTE_SERVER} “docker rm your-app || true”
    ssh ${ REMOTE_SERVER} “docker run -d --name your-app -p 8080:8080 ${ DOCKER_IMAGE} ”
    “”"
    }
    }
    }
    }
    }
  • 如需使用 Publish Over SSH 传输文件并执行远程命令,可在“系统配置”中添加 SSH Servers,在 Pipeline 中使用 sshPublisher 进行传输与远程执行。

五 触发自动化与运维建议

  • 触发方式:
    • 轮询 SCM:在流水线配置中设置 “Poll SCM”,如 H/5 * * * *(每 5 分钟检查一次)。
    • Webhook:在 GitHub/GitLab 配置 Webhook,指向 http:///github-webhook/(或 gitlab-webhook),实现代码推送即构建。
  • 运行与扩展:
    • 生产环境建议 Master/Agent 分离,在 Manage Nodes 添加 Agent 节点分担构建压力。
    • 使用 Docker 运行 Jenkins 可简化环境管理:docker run -d -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkins/jenkins:lts;如需在容器内构建镜像,可挂载 /var/run/docker.sock
  • 稳定性与可观测性:
    • 在 Pipeline 中使用 options { timeout; retry; timestamps } 控制运行时长与重试;
    • post 阶段添加通知(如邮件、企业微信/钉钉机器人)或结果归档,便于回溯。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Jenkins在Debian上的自动化部署流程是怎样的
本文地址: https://pptw.com/jishu/782619.html
Jenkins在Debian上的性能监控有哪些方法 如何在Debian上实现Jenkins的分布式构建

游客 回复需填写必要信息