首页主机资讯Ubuntu Jenkins如何实现自定义脚本执行

Ubuntu Jenkins如何实现自定义脚本执行

时间2025-11-17 17:51:04发布访客分类主机资讯浏览1059
导读:Ubuntu 上实现 Jenkins 自定义脚本执行 一 方式总览与选择 Freestyle 项目:通过构建步骤中的Execute shell直接写命令或调用脚本,适合简单任务与快速落地。 Pipeline 项目:用 **Jenkinsf...

Ubuntu 上实现 Jenkins 自定义脚本执行

一 方式总览与选择

  • Freestyle 项目:通过构建步骤中的Execute shell直接写命令或调用脚本,适合简单任务与快速落地。
  • Pipeline 项目:用 **Jenkinsfile(Groovy DSL)**编排多阶段流程,可纳入版本控制,适合复杂与可复用场景。
  • 远程执行:在 Jenkins 节点上执行脚本,并通过 SSH 免密将产物或变更分发到目标服务器(如 Nginx 静态站点)。

二 前置准备

  • 安装与启动:在 Ubuntu 上安装并启动 Jenkins,确保服务可用(默认端口 8080)。
  • 基础工具:安装项目所需的解释器与环境,例如 Python 3、构建工具、测试框架等。
  • 权限与路径:确保工作空间与脚本具备可执行权限,并在 Jenkins 的构建环境里配置好必要的环境变量与工具路径

三 方式一 Freestyle 项目执行自定义脚本

  • 新建任务:选择Freestyle project,在“构建”中点击Add build step → Execute shell
  • 在命令框中直接写入脚本或调用本地脚本,例如:
    #!/usr/bin/env bash
    set -euo pipefail
    echo "Running custom script..."
    chmod +x ./build.sh
    ./build.sh
    python3 test.py
    
  • 保存并点击Build Now,在控制台输出查看执行结果与日志。

四 方式二 Pipeline 项目执行自定义脚本

  • 在代码库根目录创建 Jenkinsfile,示例:
    pipeline {
    
      agent any
      stages {
    
        stage('Checkout') {
    
          steps {
     git 'https://github.com/your-org/your-repo.git' }
    
        }
    
        stage('Build') {
    
          steps {
     sh './build.sh' }
    
        }
    
        stage('Test') {
    
          steps {
     sh './run-tests.sh' }
    
        }
    
        stage('Report') {
    
          steps {
    
            junit '**/test-reports/*.xml'
            publishHTML(target: [
              allowMissing: false,
              alwaysLinkToLastBuild: true,
              keepAll: true,
              reportDir: 'test-reports',
              reportFiles: 'index.html',
              reportName: 'Test Report'
            ])
          }
    
        }
    
      }
    
    }
    
    
  • 在 Jenkins 中新建Pipeline任务,选择Pipeline script from SCM → Git,填写仓库 URL 与凭证,指定 Script Path(如 Jenkinsfile),保存并构建。

五 方式三 远程执行与发布示例

  • 在 Jenkins 节点生成 SSH 密钥并分发到目标服务器,实现免密登录
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa -q
    ssh-copy-id user@target-host
    
  • 编写部署脚本(如 deploy.sh),在 Jenkins 中调用以拉取代码并发布到 Nginx
    #!/usr/bin/env bash
    set -euo pipefail
    APP="bird"
    APP_PATH="/var/www/html"
    HOSTS=("10.0.0.13" "10.0.0.14")
    
    download() {
    
      rm -rf "$APP"
      git clone git@your-gitlab.com:dev/"$APP".git
    }
    
    
    deploy() {
    
      for h in "${
    HOSTS[@]}
        ";
     do
        scp -r "$APP"/* "$h:$APP_PATH/"
      done
    }
        
    
    download
    deploy
    
  • 在 Freestyle 的Execute shell或 Pipeline 的 sh 步骤中执行该脚本,完成拉取与发布。

六 常见问题与最佳实践

  • 权限与解释器:脚本需chmod +x;在 shebang 中显式声明(如 #!/usr/bin/env bash),避免环境差异导致失败。
  • 环境一致性:在 Jenkins 节点预装并验证 Python 3、依赖与工具链;必要时在构建步骤前显式安装或加载环境。
  • 日志与报告:使用 set -euo pipefail 提前暴露错误;结合 JUnitHTML Publisher 输出测试与质量报告,便于回溯。
  • 安全与可维护性:优先采用 Pipeline + SCM 管理脚本;涉及远程操作尽量使用SSH 密钥或受控凭据,避免明文密码。

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


若转载请注明出处: Ubuntu Jenkins如何实现自定义脚本执行
本文地址: https://pptw.com/jishu/749143.html
Linux防火墙日志怎样查看才有效 Ubuntu Jenkins如何实现多任务并行处理

游客 回复需填写必要信息