搭建Jenkins

一键安装 Jenkins

使用 Homebrew 可一键安装 Jenkins。

1
brew install jenkins-lts

安装中的问题

  • Error: unknown or unsupported macOS version: :sequoia

    可能表示 Homebrew 还未完全支持该系统版本,可以尝试更新 Homebrew。

    1
    2
    brew update
    brew upgrade

修改启动端口

安装完成之后,Jenkins 默认使用 8080 端口,如果端口被占用会出现启动失败情况,可以按照如下方法修改启动端口。

运行以下命令,确定 Jenkins 的安装路径:

1
brew info jenkins-lts

在输出内容中找到以下类似内容:

1
2
3
4
5
jenkins-lts: stable 2.492.1 (bottled)
Extendable open source continuous integration server
https://www.jenkins.io/
Installed
/opt/homebrew/Cellar/jenkins-lts/2.492.1 (9 files, 95.8MB) *

/opt/homebrew/Cellar/jenkins-lts/2.492.1 就是 Jenkins 的根目录,修改根目录下的 homebrew.mxcl.jenkins-lts.plist 文件。

1
vi homebrew.mxcl.jenkins-lts.plist

找到下面这行内容:

1
<string>--httpPort=8080</string>

将 8080 端口修改为自己想要的端口,保存文件,重启 Jenkins 服务即可。

Jenkins 常用命令

启动命令:brew services start jenkins-lts

停止命令:brew services stop jenkins-lts

重启命令:brew services restart jenkins-lts

查看 Homebrew 下 Jenkins 运行状态:brew services list

配置Jenkins

首次登录

浏览器输入 http://localhost:<port> 进入 Jenkins 页面。

首次登录时,默认有一个 admin 管理员用户,页面会提示管理员密码的文件所在位置,打开文件复制密码登录,登录后,Jenkins 会提示创建一个新管理员用户,创建完之后,admin 用户会被删除。

插件配置

在 Jenkins 页面,找到 系统管理 -> 插件管理,在 Available plugins 中搜索想要安装的插件。

例如,我的项目是Spring Boot项目,代码版本管理在 GitHub 上,希望通过 Jenkins 打包部署到 Linux 服务器,大致需要安装如下插件:

  • Git
  • Pipeline
  • Publish Over SSH(用于 SSH 远程部署)

Publish over SSH 配置

安装完 Publish Over SSH 之后,在系统管理 -> 系统配置 中找到 Publish over SSH 配置项。在 SSH Servers下点击新增,配置 SSH Server 的以下信息:

  • Name(服务名称,任意填写)
  • Hostname(远程服务器IP)
  • Username(远程服务器用户名)
  • 高级配置,勾选 Use password authentication, or use a different key ,如果是密码登录,则输入Password,如果是密钥登录,则在Path to key下输入 id_rsa 私钥文件路径,或者直接在Key下输入完整私钥值。

最后,点击测试连接,提示Success则表示配置成功。

Tips:高级配置下的 Jump host 表示跳板机,意思是如果想要连接 Hostname(真正想要连接的目标服务器) , 但无法直接访问时,可以通过先连接 Jump host ,再让 Jenkins 通过 Jump host 连接 Hostname。连接过程如下:

Jenkins(本机) -> Jump host -> Hostname

如果 Jump host 需要通过认证登录,可能就无法实现,经反复测试,在 Jenkins 2.492.1 版本下未找到可行方法,如果有大佬发现解决办法或解决思路,记得@我,感谢。

目前另一种解决办法是:在Job任务中,先连接 Jump host 机器,然后在 Exec command 下手动 ssh Hostname 访问目标机器。

全局配置

在 Jenkins 页面,找到 系统管理 -> 全局工具管理,配置 Maven、JDK、Git 等环境。

新建任务

不同的任务,在Jenkins配置的任务风格可能差异化也比较大,下面以具体任务需求为例:

本地SpringBoot服务,希望通过Maven打包部署到远程服务器,并在远程服务器执行Java程序

  1. 首先,自定义一个任务名称,选择自由风格,点击确定。 image-20250219163608513
  2. 在 General 中,展开高级设置,勾选“使用自定义的工作空间”,然后填入SpringBoot项目所在目录地址。 image-20250219163834692
  3. 在 Build Steps 中,点击“增加构建步骤”,选择“执行Shell”,输入项目的Maven打包操作命令。 image-20250219164325099

Tips:当前pwd路径是第2步指定的工作空间路径。此外,即使全局配置了Maven环境,但在这里Jenkins好像无法获取到,所以手动加载了Maven的环境变量。

  1. 在 Build Steps 中,点击“增加构建步骤”,选择“Send files or execute commands over SSH”,确保该步骤在第3步的步骤之后。SSH Server选择需要部署的远程服务器,Source files 是工作空间的相对路径,Remove prefix 表示移除从 Source files 推送到 Remote directory 时需要移除的路径前缀,Remote directory 表示 SSH Server 连接后的相对路径,Exec command 表示在推送文件后执行的命令。

    image-20250219165642117

  2. 最后,Save保存,然后点击“立即构建”,即可运行任务。