构建和部署应用程序可能是一项困难的任务。为什么不使用Jenkins构建作业来自动化整个过程呢?您专注于构建,而Jenkins负责代码部署。
在本教程中,您将学习如何使用Jenkins自动化代码部署,以节省时间,使您能够同时专注于其他任务。
准备好了吗?开始吧!
先决条件
本教程包含了实际演示。如果您想跟随操作,请确保您具备以下条件:
- 一个Ubuntu系统 – 本教程使用Ubuntu 20.04进行演示
- A GitHub account
- OpenJDK版本1.8.0_292
- Jenkins版本2.303.1
- Node.js版本14.17.6
- 分叉这个GitHub存储库 – 分叉后,请注意GitHub存储库的URL,稍后会用到。
尽管下面的截图中显示的仓库略有不同于上面链接的仓库,但一旦派生,您将使用不同的仓库URL。
创建Jenkins构建任务
Jenkins是一个开源的自动化服务器,帮助自动化软件开发生命周期中的构建、测试和部署,从而实现持续集成和持续交付。
在这个演示中,您将了解如何创建一个Jenkins构建任务。构建任务通常是配置自主运行构建/打包软件任务的方式。
- 启动您喜欢的浏览器,导航到http://localhost:8080/,并登录到您的Jenkins仪表板。端口
8080
是访问Jenkins仪表板的默认端口。
2. 在Jenkins的仪表板上,单击左侧面板中的新建项目按钮以初始化创建构建任务。这将重定向浏览器到一个新的任务页面。

3. 接下来,在下面显示的输入字段中输入您喜欢的构建任务的项目名称。在这个示例中,项目名称为webDeploy。
选择自由风格项目选项以启用创建作业、脚本后构建操作,并配置项目构建触发器,然后单击确定。您将被重定向到作业配置页面,在下一步中您将看到它。

4. 点击常规选项卡,并勾选GitHub 项目框以链接源代码管理器,以便 Jenkins 知道从哪里拉取您的代码。本演示使用 Git 作为托管在 GitHub 上您之前复刻的示例项目的源代码管理器。将您的 GitHub 存储库 URL 从 GitHub 帐户粘贴到下面的项目 URL字段中。

5. 最后,点击源代码管理选项卡,然后选择Git,这是您的源代码管理器。
复制并粘贴此 GitHub 存储库 URL (https://github.com/Claradev32/webDeploy.git) 到输入字段中。点击保存按钮保存您当前的配置。

为 Jenkins 项目创建凭据
也许您更喜欢将您的存储库保持私有,这对客户项目来说很常见。如果是这样,您需要创建凭据来授权 Jenkins 从 GitHub 克隆您的项目。
要为您的 Jenkins 项目创建凭据,您必须首先生成并添加一个 SSH 密钥到您的 GitHub 帐户:
1. 打开你的Ubuntu终端,运行以下命令生成一个使用ed25519
作为密钥类型的SSH密钥。将[email protected]
替换为你的GitHub邮箱地址,以将其添加为生成的SSH密钥的注释。
2. 保存你的公共SSH密钥,执行以下步骤:
- 指定一个保存位置并按下Enter。如果不指定,该命令将在默认位置保存SSH密钥,如下所示。
- 为SSH密钥输入一个安全的密码,按Enter确认密码,然后你将看到生成的公共SSH密钥的输出。
- 记住生成的SSH密钥的位置,稍后将在下面的步骤中将其添加到GitHub帐户中。

3. 在你的Web浏览器上登录GitHub并转到你的账户设置页面。
4. 点击左侧面板上的SSH和GPG密钥链接,然后点击新SSH密钥,如下所示,配置你的新SSH密钥。

5. 最后,输入你对SSH密钥的首选标题。该标题仅用于内部文档目的。在Key输入字段中粘贴你的SSH密钥(从之前保存的文件中),然后点击Add SSH Key保存密钥。
请记住,这是你的公钥,而不是私钥!

将SSH私钥添加到Jenkins凭据
现在您已经创建了用作Jenkins凭据的SSH密钥对,您还必须将您的SSH私钥添加到Jenkins凭据中,以授权Jenkins访问您的GitHub仓库。但首先,请记下您的GitHub仓库的SSH URL。
1. 导航至您的GitHub仓库页面,点击Code → SSH,然后点击下面显示的复制图标将SSH URL复制到剪贴板上。

2. 接下来,导航至您的Jenkins仪表板,然后点击管理Jenkins以访问项目设置页面。

3. 向下滚动,然后点击安全部分下的管理凭据选项,以查看您的Jenkins凭据列表。

4. 在下面显示的凭据页面上点击Jenkins,以访问“系统”页面,您可以在该页面上添加新凭据。

5. 现在,在系统页面上,将鼠标悬停在全局凭据(不受限制)选项上以显示下拉菜单,然后点击向下的箭头图标。
从下拉菜单中点击添加凭据。页面将重定向到一个表单,在该表单中,您将配置下一步中显示的新凭据。

6. 在第一个输入字段中选择带私钥的SSH用户名,然后在用户名字段中输入项目用户名。例如,用户名为CI/CD。
在这种情况下,用户名仅用于内部文档,不用于身份验证。

7. 运行下面的命令来查看您的SSH私钥,将位置更改为您的密钥保存的位置,如下所示(下面的密钥位于主目录中)。记下您的SSH私钥,因为您将在下一步中将其添加到Jenkins凭据中。

8. 一旦您记下了SSH私钥,返回到全局凭据(无限制)页面。
将您在“为Jenkins项目创建凭据”部分(第二步)设置的密码输入到密码输入框中,然后点击确定。这样做将授权Jenkins访问您的GitHub存储库。
如果在创建SSH密钥时没有设置密码,请点击直接输入,然后点击添加按钮。将您的SSH私钥输入到下面的密钥输入框中,如下所示,然后按下确定按钮以保存凭据。

8. 返回到您的Jenkins仪表板,将鼠标悬停在您的项目上,然后点击向下的箭头图标,选择配置,如下图所示。页面将重定向到您项目的配置页面。

10. 最后,在下拉菜单字段中选择凭据用户名(从“将密钥添加到Jenkins凭据”部分的第六步)。 Jenkins默认应用CID原则以确保您项目的持续集成和部署。

配置构建触发器和后构建操作
您现在成功创建了构建任务的框架。但是,如果您经常对项目进行更改,那么每次都必须手动重新部署吗?为什么不设置构建触发器呢? 构建触发器会自动重新部署您在GitHub上推送的项目更改。
1. 在您项目的配置页面上,单击构建触发器选项卡,并选中GitHub挂钩触发器进行GITScm轮询选项。此选项允许您自动重新部署您项目的更改。

2. 单击构建选项卡,单击添加构建步骤,然后选择执行shell以创建一个脚本,该脚本将在Jenkins下载您代码的新版本时运行。

您创建的shell脚本取决于您的开发环境。 如果您在Windows上,Windows将执行该脚本; 其他操作系统也是如此。
3. 输入以下shell命令,并单击保存以保存构建脚本。保存更改后,页面将重定向回您项目的仪表板。
下面的命令从您的源代码远程位置(origin master
)拉取您的代码,并使用NodeJS NPM install(npm install
)安装运行项目所需的必要依赖项。这些命令在您向源代码管理器发出推送请求时执行。
这个特定项目利用NodeJS来管理依赖关系,但您的特定项目可能不同。

4. 现在,在您项目的仪表板上,点击立即构建来运行构建。

5. 滚动到构建历史记录以查看构建的状态。如果构建成功,您将看到类似于下面截图的输出。

如果构建失败,您将看到下面显示的输出。

6. 接下来,向上滚动并点击配置以配置项目的后构建操作。

7. 点击后构建操作选项卡,然后点击添加后构建操作并选择Git发布者。页面会展开Git发布者设置部分(下一步)。

8. 最后,启用仅在构建成功时推送选项,并点击保存按钮以保存更改。启用此选项告诉Jenkins仅在构建成功时部署代码。

结论
在这个教程中,您已经学习了将 Jenkins 连接到您的源代码管理系统的过程。您还创建了一个构建脚本,当 Jenkins 下载您的代码的新版本时会自动运行,并设置了构建触发器来自动化 Web 部署。
现在,为什么不通过 Jenkins 构建作业自动化您的应用程序部署,节省一些时间呢?