Debian Jenkins如何实现自定义脚本
导读:在 Debian 上使用 Jenkins 实现自定义脚本 一 环境准备与安装 安装 Java 17(Debian 12 推荐):sudo apt-get install -y fontconfig openjdk-17-jre 导入 Je...
在 Debian 上使用 Jenkins 实现自定义脚本
一 环境准备与安装
- 安装 Java 17(Debian 12 推荐):sudo apt-get install -y fontconfig openjdk-17-jre
- 导入 Jenkins 官方 APT 密钥 与源(使用签名文件方式):
- sudo wget -O /usr/share/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian-stable/jenkins.io-2023.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 > /dev/null
- 安装并启动 Jenkins:sudo apt-get update & & sudo apt-get install -y jenkins & & sudo systemctl enable --now jenkins
- 获取解锁密钥:sudo cat /var/lib/jenkins/secrets/initialAdminPassword
- 访问控制台:打开浏览器进入 http://< 服务器IP> :8080,完成插件与管理员初始化。
二 自定义脚本的两种常见方式
- 方式 A 内联脚本(直接在任务中编写 Pipeline)
- 新建任务:New Item → 选择 Pipeline → 在 “Pipeline” 部分选择 Pipeline script,直接粘贴 Groovy 脚本。
- 适用:快速验证、演示或脚本较简单的场景。
- 方式 B SCM 管理脚本(推荐)
- 在代码仓库根目录放置 Jenkinsfile,将构建、测试、部署流程纳入版本控制。
- 任务配置选择 Pipeline script from SCM → 选择 Git → 填写仓库 URL 与凭据 → 指定脚本路径(如 Jenkinsfile)。
- 适用:团队协作、可审计、可回滚与多环境复用。
三 示例 Jenkinsfile 模板
- 多语言通用模板(拉取代码 → 构建 → 测试 → 归档 → 可选部署)
- pipeline { agent any environment { APP_NAME = ‘myapp’ VERSION = ‘1.0.${ BUILD_NUMBER} ’ } stages { stage(‘Checkout’) { steps { git branch: ‘main’, url: ‘https://github.com//.git’ } } stage(‘Build’) { steps { sh ‘make build || ./mvnw package -DskipTests’ } } stage(‘Test’) { steps { sh ‘make test || ./mvnw test’ } post { always { junit ‘/target/surefire-reports/*.xml’ } } } stage(‘Archive’) { steps { archiveArtifacts artifacts: '/target/.jar,/dist/', fingerprint: true } } stage(‘Deploy’) { when { branch ‘main’ } steps { sh 'rsync -avz target/.jar user@prod-server:/opt/app/’ // 或使用 SSH Publisher 插件发布 } } } post { success { echo ‘Build and tests succeeded.’ } failure { echo ‘Build or tests failed.’ } always { echo ‘Pipeline finished.’ } } }
- 说明
- 语言/构建工具可按需替换(如 mvnw、npm、pip)。
- 测试报告归档使用 junit 步骤,归档产物使用 archiveArtifacts。
- 部署阶段可按需启用,结合凭据与远程命令/插件完成发布。
四 触发与集成
- 源码变更触发
- 轮询 SCM:在任务 “Build Triggers” 勾选 Poll SCM,如 H/5 * * * *(每 5 分钟检查一次)。
- Webhook(推荐):安装 GitHub Integration 插件,任务勾选 GitHub hook trigger for GITScm polling;在 GitHub 仓库 Settings → Webhooks 添加 Payload URL:http:///github-webhook/,Content type 选 application/json,事件选 Just the push event。
- 远程触发与通知
- 远程构建:使用 curl 或 GitHub webhook 触发构建,便于与外部系统集成。
- 构建后处理:可结合邮件或企业微信/钉钉通知插件,在 post 阶段执行通知逻辑。
五 安全与运维要点
- 凭据管理:在 Manage Jenkins → Credentials 添加 SSH 私钥、用户名/密码、Personal Access Token,在 Pipeline 中使用 withCredentials 绑定,避免明文存放。
- 权限与隔离:为 Jenkins 服务使用 专用系统用户,最小权限运行;不同项目使用独立 Agent/标签 与 工作空间,减少相互影响。
- 网络安全:仅开放必要端口(默认 8080),生产环境建议启用 反向代理 + HTTPS;如使用 UFW:sudo ufw allow 8080/tcp。
- 日志与审计:通过 Console Output 排查问题;关键操作纳入版本控制(Jenkinsfile 与脚本),保留变更记录与回滚能力。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian Jenkins如何实现自定义脚本
本文地址: https://pptw.com/jishu/774031.html
