首页主机资讯Jenkins如何自动化Ubuntu任务

Jenkins如何自动化Ubuntu任务

时间2025-11-29 02:40:03发布访客分类主机资讯浏览1033
导读:在 Ubuntu 上使用 Jenkins 实现自动化任务 一 环境准备与安装 安装 Java 11/17(Jenkins 运行依赖): sudo apt update && sudo apt install -y ope...

在 Ubuntu 上使用 Jenkins 实现自动化任务

一 环境准备与安装

  • 安装 Java 11/17(Jenkins 运行依赖):
    • sudo apt update & & sudo apt install -y openjdk-11-jdkopenjdk-17-jdk
    • java -version 验证
  • 安装 Jenkins(APT 方式,LTS 仓库):
    • wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
    • sudo sh -c ‘echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list’
    • sudo apt update & & sudo apt install -y jenkins
  • 启动与开机自启:
    • sudo systemctl start jenkins & & sudo systemctl enable jenkins
  • 访问与初始化:
    • 浏览器打开 http://< 服务器IP> :8080
    • 初始管理员密码:sudo cat /var/lib/jenkins/secrets/initialAdminPassword
    • 按向导完成安装,建议先安装推荐插件(如 Git、Pipeline

二 创建自动化任务

  • 方式一 Freestyle 项目(适合简单任务)
    • 新建任务 → 选择 Freestyle project
    • 源码管理:选择 Git,填写仓库 URL 与凭据
    • 构建触发器:可选 轮询 SCM(如 H/5 * * * * 每5分钟)或 GitHub/GitLab Webhook
    • 构建步骤:Add build step → Execute shell,填入构建命令(如 mvn/测试/打包)
    • 构建后操作:可发布测试报告、归档产物、发送通知等
  • 方式二 Pipeline 项目(推荐,可版本化管理流程)
    • 新建任务 → 选择 Pipeline
    • 定义方式:选择 Pipeline script from SCM,指定仓库与 Jenkinsfile 路径
    • 在代码库根目录放置 Jenkinsfile,用 Groovy 定义 stages/steps,便于团队协作与审计

三 触发器与 Webhook 配置

  • 代码提交即触发(GitHub 示例)
    • Jenkins 任务启用 GitHub hook trigger for GITScm polling
    • GitHub 仓库 → Settings → Webhooks → Add webhook
      • Payload URL: http://< JENKINS_URL> /github-webhook/
      • Content type: application/json
      • Events: 选择 Push events(可按需选择)
  • 定时触发(SCM 轮询)
    • 在 Freestyle 的“构建触发器”填入 **H/5 * * * ***(示例为每5分钟检查一次变更)
  • GitLab 类似:在任务中选择 GitLab webhook,并在 GitLab 项目设置中配置 Webhook 指向 Jenkins

四 常见任务示例

  • 示例一 构建与测试(Maven)
    • Jenkinsfile
      • pipeline { agent any tools { maven ‘Maven-3’ jdk ‘JDK-11’ } // 需在“全局工具配置”预先配置 stages { stage(‘Checkout’) { steps { git url: ‘git@github.com:org/repo.git’, branch: ‘main’ } } stage(‘Build’) { steps { sh ‘mvn -B -DskipTests clean package’ } } stage(‘Test’) { steps { sh ‘mvn test’ } } stage(‘Archive’) { steps { archiveArtifacts artifacts: ‘target/*.jar’, fingerprint: true } } } }
  • 示例二 Docker 构建与运行(同一台 Ubuntu 主机)
    • 赋予 Jenkins 使用 Docker 的权限:sudo usermod -aG docker jenkins & & sudo systemctl restart jenkins
    • Jenkinsfile(片段)
      • stage(‘Docker Build & Run’) { steps { sh ‘docker build -t demo-app:${ env.BUILD_ID} .’ sh ‘docker stop myapp || true’ sh ‘docker rm myapp || true’ sh “docker run -d --name myapp -p 8080:8080 demo-app:${ env.BUILD_ID} ” } }
  • 示例三 通过 SSH 发布到远程服务器
    • 安装并配置插件:Publish Over SSH
    • Jenkins 系统配置中添加 SSH Server(名称、Host、凭证等)
    • Jenkinsfile(片段)
      • stage(‘Deploy via SSH’) { steps { sshPublisher( publishers: [ sshPublisherDesc( configName: ‘prod-server’, transfers: [ sshTransfer( sourceFiles: ‘target/*.jar’, removePrefix: ‘target’, remoteDirectory: ‘/opt/app’ ) ] ) ] ) } }

五 权限与安全加固

  • 运行用户与权限
    • 避免以 root 运行 Jenkins;如用到 Docker,务必将 jenkins 用户加入 docker 组并重启服务
  • 凭据管理
    • 使用 Jenkins 凭据 管理 SSH 私钥、Git 凭据、镜像仓库账号,避免明文写在脚本中
  • 网络安全
    • 仅开放必要端口(如 8080);生产环境建议前置 Nginx/Apache + HTTPS/反向代理,并限制来源 IP
  • 防火墙
    • 如使用 UFW:sudo ufw allow 8080;如需公网访问,务必配合安全组/防火墙策略

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


若转载请注明出处: Jenkins如何自动化Ubuntu任务
本文地址: https://pptw.com/jishu/759765.html
Jenkins如何在Ubuntu上进行远程控制 如何在ubuntu虚拟机中运行Linux命令

游客 回复需填写必要信息