Jenkins 安装配置持续交付

本文详细介绍了如何在Linux环境下安装Jenkins,并配置JDK、Maven和Git。通过创建新任务,配置源码管理、构建触发器、构建步骤以及部署到远程服务器,实现自动化构建和部署。同时,还涉及到了Jenkins插件的安装、SSH配置、Jenkins服务的启停以及与飞书的集成,确保了构建过程的顺畅与通知的及时性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.0 前置环境

# 安装 git java maven
yum install -y git java  maven

1.1 下载

打开 Jenkins 下载页面,选择想要的 Jenkins 版本。这里,我们选择 jenkins.war 软件包;

# 创建目录
mkdir -p /usr/local/jenkins
cd /usr/local/jenkins

# 官网下载
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

# 清华大学开源镜像站下载(国内速度快)
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/latest/jenkins.war

1.2 启动 Jenkins 服务

# 后台启动 Jenkins 服务
nohup java -jar jenkins.war &

# 可以通过在运行命令时指定--httpPort选项 来更改端口。
nohup java -jar jenkins.war --httpPort=9090 &

# 查看启动日志
tail -f nohup.out

因为 jenkins.war 内置 Jetty 服务器,所以无需丢到 Tomcat 等等容器下,可以直接进行启动。

2.1 Jenkins 配置

当您第一次访问新的 Jenkins 实例时,系统会要求您使用自动生成的密码解锁它。

  1. 浏览到http://localhost:8080(或您在安装 Jenkins 时为它配置的任何端口)并等待解锁 Jenkins页面出现。

    1. 从 Jenkins 控制台日志输出中,复制自动生成的字母数字密码(在 2 组星号之间)。

      命令:sudo cat /var/jenkins_home/secrets/initialAdminPassword 将在控制台打印密码。

       

      2.2 Jenkins 停止&重启&重载

      # 格式 http://[jenkins-server-address][:port]/[command]
      
      # 退出
      http://[jenkins-server-address][:port]/exit
      
      # 重启
      http://[jenkins-server-address][:port]/restart
      
      # 重载
      http://[jenkins-server-address][:port]/reload

      2.3 Jenkins 插件安装

      推荐安装如下插件:

      • Maven Integration
      • Maven Info
      • Publish Over SSH
      • Extended Choice
      • Parameter Git Parameter

      从 Jenkins 首页开始,按照「系统管理 -> 插件管理」的顺序,进入「插件管理」界面。如下图所示:

      搜索需要安装的插件后选中点击Install without restart(无需重启即刻安装);

      2.4 Jenkins 配置JDK_MAVEN_GIT

      从 Jenkins 首页开始,按照「系统管理 -> 全局工具配置」的顺序,进入「全局工具配置」界面。如下图所示:

      2.4 SSH配置

      从 Jenkins 首页开始,按照「系统管理 -> 系统配置」的顺序,进入「配置」界面,然后下拉到最底部找到SSH Servers,如下图所示:

      配置远程服务器的 SSH 信息,并点击「高级」按钮 之后。如下图所示:

       配置密钥等信息后,可点击「Test Configuration」按钮进行测试。如下图所示:

       左下角显示「Success」代表成功。

      3.0 Jenkins 部署任务配置

      从 Jenkins 首页开始,点击「新建任务」按钮,进入 Jenkins 任务创建界面。输入任务名,并选择构建一个 Maven 项目。如下图所示:

      输入任务名称选择「构建一个maven项目」后点击「确认」按钮,进入该任务的配置界面。如下图所示: 

      ① General

      ② Maven Info Plugin Configuration

       丢弃旧的构建,防止Jenkins 所在服务器的磁盘满。 

      参数化构建:这里使用 Git Parameter 插件,创建了参数名为 BRANCH,值为 Git 项目的 Branch/Tag。在后续的项目构建中,可以选择构建的 Git 项目的分支/标签。 

      ③ 源码管理

      ​1. 选择 Git 并配置仓库URL;

      2. Branches to build 配置项:设置使用的 Git 分支/标签。使用之配置的构建参数 BRANCH 。 

      3. Credentials: 可添加仓库密钥信息;

      ④ 构建触发器 & 构建环境 & Pre Steps

      暂时无需配置,忽略即可;

      ⑤ Build

       Goals and options 配置项:设置 Maven 构建命令。

      • 若构建整个Maven项目子模块,使用 clean package -pl healthy/healthy-user -am -T 1C -Dmaven.test.skip=true -Dmaven.compile.fork=true 命令。
      • 若构建整个项目,可使用 clean package -Dmaven.test.skip=true 命令。 

      ⑥ Post Steps & 构建设置 

      ⑦ 构建后设置 

      点击「增加构建后操作步骤」按钮,选择「Send build artifacts over SSH」选项,配置将 Maven 构建出来的 jar 包,通过 SSH 发送到远程服务器,并执行相应脚本,进行启动 Java 服务。如下图所示:

      Name 配置项:选择部署的远程服务器(之前配置的SSH)。

      Transfer Set Sources files 配置项:设置传输的文件。

      • maven多模块项目发布子模块时填 healthy-user/target/*.jar 。
      • 使用 clean install -Dmaven.test.skip=true 命令时,则此处配置 target/*.jar 即可。

      Remove prefix 配置项:设置传输的文件,需要移除的前缀。

      Remote directory 配置项:传输到远程服务器的目录。示例:/work/projects/jenkins-demo/build

      Exec command 配置项:设置传输完文件后,执行的 Shell 命令。示例:cd /work/projects/jenkins-demo/shell && ./deploy.sh test 命令,表示执行部署脚本(test为shell传递的参数$1),进行启动 Java 服务。。

      Exec in pty 配置项:必须勾选上,表示模拟一个终端执行脚本(高级选项中)。

      Add Server 按钮:如果要部署到更多的远程服务器,部署多个节点,点击进行配置。

       推荐打开Verbose output in console, 方便构建过程中查看日志;

      4.0 Jenkins 部署任务

      5.0 Jenkins Lark&飞书&钉钉通知

       1. 从 Jenkins 首页开始,按照「系统管理 -> 插件管理」的顺序,进入「插件管理」界面,点击「高级」并找到 Deploy Plugin 选项后输入插件地址后点击 「deploy」

      2. 安装成功后从 Jenkins 首页开始,按照「Manage Jenkins」进入「Jenkins管理」界面,找到「飞书」配置项,如下图所示:

      机器人id: 可忽略自动生成; 名称: 自定义; webhook & 加密 :  来自飞书群机器人配置;

       高级配置可配置通知人,自定义内容,本文忽略; 

        3. 从 Jenkins 首页开始,按照「指定任务 -> 配置」的顺序,进入「配置」界面,如下图所示:

       点击选中构建通知机器人即可;

      6.0 示例项目&脚本

      1. 示例项目:jenkins-demo (无需Nacos的话,可直接移除相关配置依赖)

      2. 执行脚本:deploy.sh

      7.0 常见问题

      1.  maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories

              原因:maven3.8+ 以上的版本不再支持http连接。

              解决(如下三种方案自行选择):

                      1.  降低 Maven 版本

                      2.  将镜像仓库地址协议由 http 改为 https (settings.xml)

                      3.  删除id为:maven-default-http-blocker的mirror节点配置 (settings.xml)

       2.  无法访问插件镜像地址

      # 查找文件
      find / -name default.json
      
      # 进入目录
      cd /root/.jenkins/updates
      
      # 修改下载地址为国内的源
      sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
      sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

       3.  执行sh文件提示权限不够

      # 终端执行如下命令
      chmod +x  ***.sh

       4.  访问端口一直显示 Please wait while Jenkins is getting ready to work...

      # 查找文件
      find / -name hudson.model.UpdateCenter.xml
      
      # 修改源地址
      vim /root/.jenkins/hudson.model.UpdateCenter.xml
      
      
      # 完整内容 仅需修改url即可
      <?xml version='1.1' encoding='UTF-8'?>
      <sites>
        <site>
          <id>default</id>
          <url>http://mirror.xmission.com/jenkins/updates/update-center.json</url>
        </site>
      </sites>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值