首页主机资讯Jenkins在Debian上如何进行持续集成

Jenkins在Debian上如何进行持续集成

时间2025-11-03 09:54:03发布访客分类主机资讯浏览254
导读:1. 安装Java环境(Jenkins前置依赖) Jenkins是基于Java的应用程序,需先安装Java运行时环境(JRE)或开发工具包(JDK)。推荐使用OpenJDK 11及以上版本,命令如下: sudo apt update sud...

1. 安装Java环境(Jenkins前置依赖)
Jenkins是基于Java的应用程序,需先安装Java运行时环境(JRE)或开发工具包(JDK)。推荐使用OpenJDK 11及以上版本,命令如下:

sudo apt update
sudo apt install openjdk-11-jdk -y
# 验证Java安装
java -version

确保输出显示Java版本信息,如openjdk version "11.0.xx"

2. 添加Jenkins官方仓库
为确保安装最新稳定版Jenkins,需添加其官方APT仓库:

# 导入Jenkins GPG密钥(用于验证软件包完整性)
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
# 添加Jenkins仓库源(Debian稳定版)
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ >
     /etc/apt/sources.list.d/jenkins.list'
# 更新APT包列表
sudo apt update

此步骤将Jenkins仓库纳入系统源,便于后续安装。

3. 安装Jenkins并启动服务
通过APT包管理器安装Jenkins,安装过程会自动解决依赖:

sudo apt install jenkins -y

安装完成后,启动Jenkins服务并设置为开机自启:

sudo systemctl start jenkins
sudo systemctl enable jenkins

使用systemctl status jenkins可检查服务运行状态(显示active (running)即为正常)。

4. 解锁Jenkins并完成初始配置
首次访问Jenkins需解锁,解锁密码存储在以下文件中:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

复制密码,在浏览器中访问http://< your_server_ip> :8080(默认端口8080),粘贴密码完成解锁。
解锁后,Jenkins会引导安装推荐插件(如Git、Pipeline、Maven等),建议勾选“Install suggested plugins”以快速搭建基础环境。

5. 创建管理员账户
插件安装完成后,需创建管理员账户(用于登录和管理Jenkins):

  • 输入用户名、全名、密码(如admin/your_password);
  • 勾选“同意服务条款”;
  • 点击“Save and Finish”完成账户创建。

6. 配置Jenkins基础设置

  • 全局工具配置:进入Manage Jenkins > Global Tool Configuration,设置Java、Maven、Git等工具的路径(若已加入系统PATH可跳过);
  • 防火墙配置:若系统启用UFW防火墙,需开放Jenkins端口:
    sudo ufw allow 8080
    
    验证端口开放:sudo ufw status(显示8080/tcp ALLOW)。

7. 创建Jenkins Job(以Freestyle Project为例)

  • 点击New Item,输入任务名称(如my-app-ci),选择Freestyle project,点击OK
  • 源码管理:选择Git,填写代码仓库URL(如https://github.com/yourusername/your-project.git),若有私有仓库需配置Credentials(如SSH密钥或账号密码);
  • 构建触发器:选择触发构建的方式(如Poll SCM(定时轮询SCM,如H/5 * * * *表示每5分钟检查一次)、GitHub hook trigger for GITScm polling(GitHub Webhook触发));
  • 构建步骤:点击Add build step,选择对应工具(如Invoke top-level Maven targets),填写Maven命令(如clean install);
  • 构建后操作:点击Add post-build action,可选择Archive the artifacts(归档构建产物,如target/*.jar)、Send build notifications(发送邮件/Slack通知)。

8. 使用Jenkins Pipeline实现自动化(推荐)
Pipeline是Jenkins的声明式自动化脚本,可通过Jenkinsfile定义整个CI/CD流程(构建、测试、部署)。

  • 在项目根目录创建Jenkinsfile(示例如下):
    pipeline {
    
        agent any  // 使用任意可用节点
        stages {
    
            stage('Checkout') {
    
                steps {
    
                    git 'https://github.com/yourusername/your-project.git'  // 拉取代码
                }
    
            }
    
            stage('Build') {
    
                steps {
    
                    sh 'mvn clean install'  // Maven编译打包
                }
    
            }
    
            stage('Test') {
    
                steps {
    
                    sh 'mvn test'  // 运行单元测试
                }
    
            }
    
            stage('Deploy') {
    
                when {
    
                    branch 'master'  // 仅master分支触发部署
                }
    
                steps {
    
                    sshagent(['your-ssh-credentials']) {
      // 使用SSH凭证
                        sh 'scp target/*.jar user@yourserver:/path/to/deploy'  // 传输文件到测试服务器
                        sh 'ssh user@yourserver "bash /path/to/deploy/script.sh"'  // 执行部署脚本
                    }
    
                }
    
            }
    
        }
    
    }
        
    
  • 创建Pipeline任务:New Item > 输入名称(如my-app-pipeline) > 选择Pipeline > 点击OK
  • 配置Pipeline:选择Pipeline script from SCM,SCM选择Git,填写仓库URL,Script Path填写Jenkinsfile(即Jenkinsfile在仓库中的路径);
  • 保存并运行:点击Save,手动触发或等待Webhook触发,查看构建日志。

9. 监控与维护

  • 查看构建状态:进入Dashboard,点击任务名称即可查看构建历史、日志;
  • 监控系统资源:使用Manage Jenkins > System Information查看Jenkins运行状态;
  • 备份配置:定期备份/var/lib/jenkins目录(包含所有配置、构建产物);
  • 更新Jenkins:通过Manage Jenkins > Manage Plugins > Available更新插件,或通过APT更新Jenkins本身。

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


若转载请注明出处: Jenkins在Debian上如何进行持续集成
本文地址: https://pptw.com/jishu/740542.html
Debian系统中Jenkins如何进行任务调度 Debian系统中Jenkins如何进行自动化测试

游客 回复需填写必要信息