在 AWS EC2 Linux 实例上使用 Github 和 Jenkins 设置简单的 CI/CD 管道在 AWS EC2 Linux 实例上使用 Github 和 Jenkins 设置简单的 CI/CD 管道在 AWS EC2 Linux 实例上使用 Github 和 Jenkins 设置简单的 CI/CD 管道在 AWS EC2 Linux 实例上使用 Github 和 Jenkins 设置简单的 CI/CD 管道
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 AWS EC2 Linux 实例上使用 Github 和 Jenkins 设置简单的 CI/CD 管道

发表 admin at 2025年2月28日
类别
  • 未分类
标签

在本文中,我们将看到使用 Jenkins 实施简单 CI/CD 管道的步骤。我们将使用示例 Java 代码,并将该代码作为 .war 文件部署到 Apache Tomcat Web 服务器上。我们将使用 Maven 作为构建工具。您可以在我的 Github 存储库 (repo) 上找到示例 Java 代码。在我们继续之前,让我们了解一下我们将在设置 CI/CD 管道时使用的工具和技术的基础知识。

  1. EC2 实例:EC2 实例是 AWS 云中的虚拟机 (VM)。我们将在 EC2 实例上部署 Apache Tomcat 和 Jenkins。
  2. Apache Tomcat:Apache Tomcat 是一个开源 Web 服务器。我们将把示例 Java 应用程序作为 .war 文件部署到 Apache Tomcat 中。
  3. Github:Github 是一个代码托管平台。它基本上是一个版本/源代码控制管理系统。我们会将示例 Java 代码发布到 Github。
  4. Github Webhook:Github Webhook 用于构建和设置集成。我们将创建一个 webhook,它会在 Github 存储库上发生新提交时触发 Jenkins Job。
  5. Jenkins:Jenkins 是一个免费的开源自动化工具。我们将在 Jenkins 上编写一个作业,它将构建示例 Java 应用程序代码的 .war 文件并将其部署到 Apache Tomcat 服务器上。
  6. Maven:Maven 是一种构建自动化工具,主要用于构建 Java 项目。

先决条件

  1. AWS 帐户(如果没有,请创建)
  2. 对 Github 有基本的了解。
  3. 对詹金斯有基本的了解。
  4. 对 Linux 服务器和命令有基本的了解

我们会怎样做?

  1. 创建 EC2 实例
  2. 安装Java
  3. 安装詹金斯
  4. 设置 Apache Tomcat
  5. 创建我的 Github 仓库
  6. 访问和配置 Jenkins
  7. 为 .war 部署设置 Jenkins 作业
  8. 在 Github Repo 上设置 Webhook
  9. 在每次提交时测试自动构建

创建 VM 或 EC2 实例

要创建 EC2 实例,您可以参考此处提供的文档。

在这里,我在我的 AWS 账户上创建了一个新的 EC2 实例。这个实例上有 Ubuntu 18 操作系统。

您可以看到实例已启动并正在运行。我将使用此实例来安装 Java 或依赖项以及 Apache Tomcat 和 Jenkins。

安装Java

要将 Java 安装到您的 Ubuntu 18 系统上,您可以使用以下命令。以下命令将安装 Java 8。安装后,您甚至可以检查其版本。

sudo apt-get update
sudo apt install openjdk-8-jdk
java -version

安装詹金斯

使用以下命令将 Jenkins 安装到您的实例上。

sudo apt-get update
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

安装 Jenkins 后,使用以下命令启动它并检查其状态。


sudo systemctl start jenkins #Start Jenkins
service jenkins status #Check Jenkins Status

在下面的屏幕截图中,您可以看到 Jenkins 服务已经启动。此 Jenkins 服务已在端口 8080 上启动。

设置 Apache Tomcat

安装 Apache Tomcat

在我们下载和安装 Apache Tomcat 之前,让我们创建一个目录,我们可以在其中下载 Apache Tomcat 包。

使用以下命令在 /opt 中创建一个目录

cd /opt/
sudo mkdir Innovecture

使用以下命令更改目录的所有权。我们正在将所有权更改为用户 Ubuntu 和组 Ubuntu,以便 Ubuntu 用户可以启动 Apache Tomcat 服务,我们不需要使用 root 或用户或 sudo 权限。


sudo chown -R ubuntu:ubuntu Innovecture
cd Innovecture/

使用以下命令下载并提取 Apache Tomcat。如果您想使用任何其他版本的 Apache Tomcat,您可以下载并解压缩。


wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz
tar -zxvf apache-tomcat-9.0.31.tar.gz 
cd apache-tomcat-9.0.31/

使用以下命令在 Apache Tomcat 中进行所需的配置。需要完成的配置请参考以下截图。在以下配置中,我们分配了一个用户和密码,可用于登录 Apache Tomcat 的管理器应用程序。记下此用户名和密码,因为稍后我们将需要这些凭据。

配置 Apache Tomcat

vim conf/tomcat-users.xml

请参考以下屏幕截图并确保您的 context.xml 具有相同的配置。

vim webapps/manager/META-INF/context.xml

在 conf 目录下的 server.xml 中更改 Apache Tomcat 运行的端口,即将端口 8080 更改为 8090,因为我们的 Jenkins 服务已经在端口 8080 上运行。

vim conf/server.xml

还要使用服务器的 IP 更改 server.xml 文件中的 localhost 配置,以便可以从 Internet 访问您的服务器。

启动 Apache Tomcat

使用以下命令启动 Apache Tomcat 服务。

bin/startup.sh

在下面的屏幕截图中,您可以看到 Apache Tomcat 服务正在端口 8090 上运行,而 Jenkins 服务正在端口 8080 上运行。要检查您的系统,请使用以下命令。

netstat -tulpn 

登录 Tomcat 管理器应用程序

要查看我们是否能够使用我们之前指定的凭据登录到 Apache Tomcat 的管理器应用程序,请点击 Apache Tomcat 的 URL http://IP-of-Apache-Tomcat:8090/manager。系统将提示您使用凭据屏幕,只需输入我们在 conf/tomcat-users.xml 中配置的用户名 tomcat-manager 和密码。

登录成功后会看到如下画面

叉 Github 回购

您可以分叉或克隆我在下面提到的回购协议。此存储库包含示例 Java 代码,您可以使用此代码,或者如果您有自己的存储库,也可以使用它。

回购协议的 URL:https://github.com/shivalkarrahul/Innovecture.git

访问和配置 Jenkins

要访问 Jenkins,请点击 URL http://IP-of-Jenkins:8080。

按照您到达的屏幕解锁 Jenkin 并安装建议的插件

解锁 Jenkin 并安装建议的插件后,您将看到以下屏幕。

您需要输入您需要配置的用户名和密码,然后单击保存并继续进行。

安装 Github Authentication Plugin 无需重启

成功登录后,转到管理 Jenkins > 管理插件。 在 Available 选项卡下搜索 git。 选择“GithubAuthentication”插件并点击安装而不重启。

无需重启即可安装 Maven Integration Plugin

同样的方法,安装maven集成插件,无需重启即可安装

安装 Deploy to container 插件无需重启

要将 .war 文件自动部署到 Apache Tomcat,我们需要一个“部署到容器”插件。按照我们安装 git 和 maven 插件的方式安装“部署到容器”插件。

为 .war 部署设置 Jenkins 作业

现在是创建自由式工作的时候了。转到主仪表板并单击创建作业。选择自由式作业并继续。

在 General 选项卡下添加 Github Repo

在常规选项卡下,选中“Github 项目”复选框并添加源代码仓库的 URL 或您从我的仓库中分叉的仓库的 URL。

源代码管理下添加Github URL

在源代码管理选项卡下,单击“Git”单选按钮并添加存储库 URL,如下所示。由于我的存储库不是私有的而是公开的,因此我不需要添加凭据。

选择 Github 钩子触发器

在“构建触发器”选项卡下选择“GitSCM 轮询的 GitHub 钩子触发器”

添加构建步骤

在构建环境下单击添加构建步骤并选择“调用顶级 Maven 目标”

对于目标,指定清理和打包并保存作业。

测试构建

要测试作业是否能够提取和构建我们的代码,请单击“立即构建”。

添加部署后生成操作

现在我们确定我们的代码正在被拉取和构建,现在我们准备添加一个构建后操作。要添加构建后操作,请单击构建环境下的构建后操作并选择“将战争部署到容器”。

然后添加 tomcat 服务器的 URL 以及凭据。要添加凭据,请单击“添加”并按照您看到的步骤操作并保存作业。

测试手动构建

现在测试我们的作业是否能够在 Apache Tomcat 服务器上拉取、构建和部署代码。单击立即构建以测试我们的工作。

如上图所示,手动构建成功并已部署到 Apache Tomcat 服务器上。

要测试 war 是否真的已部署,请点击 Apache Tomcat http://IP-of-Apache-Tomcat:8090/manager 以访问管理器应用程序。

在这里可以看到web_ex.war文件已经成功部署到Apache Tomcat服务器上。

测试示例 Java 应用程序

要测试 Java 应用程序是否正在运行,请点击 URL http://IP-of-Apache-Tomcat:8090/web_ex。

在 Github Repo 上设置 Webhook

创建网络钩子

要在选项卡上创建 Webhook,请访问让她的网站登录到您的帐户,然后按照下面提到的步骤操作。

转到您的存储库设置,在左侧面板中点击网络挂钩,然后点击“添加网络挂钩”

在有效负载 URL 中添加 http://Jenkins-URL:8080/github-webhook。

您可以选择要触发此 Webhook 的事件,或者如果您希望在每个事件上都触发 Jenkins 作业,则可以选择“向我发送所有内容”,单击更新 Webhook 以保存它。

提交时测试自动构建

现在我们准备测试我们的自动构建工作。

要测试我们的 Jenkins 作业是否在每次提交时从我们的 github 存储库中提取代码,请使用以下命令。

要在本地克隆 repo,我使用了以下命令。如果您有自己的报告,只需将其发送到您的本地系统即可。

git clone https://github.com/shivalkarrahul/Innovecture.git
cd Innovecture/

对存储库进行一些更改,以便我们可以推送它们。在这里,我在本地添加了一个新文件,我将把它推送到我的远程仓库中

touch README.md

要为 git 配置用户名和电子邮件 ID,请使用以下命令。

git config user.name "Rahul Shivalkar"
git config user.email "[email "

要提交并推送您的更改,请使用以下命令

git commit -m "Test Commit"
git push

一旦我们将更改推送到 Github 上的存储库,它就会触发我们在 Github Webhook 中添加的 Jenkins 作业。

您可以在作业的“轮询日志”下看到它,请参阅以下屏幕截图。

如果转到作业的控制台输出,您可以看到作业已成功执行并且 war 已部署到 Apache Tomcat。

重新测试

现在更改代码以测试是否部署了最新代码。我将更改浏览器上显示的消息。

如果您使用自己的报告,请在您的代码中进行必要的更改,在这里我只是更改一个示例 index.jsp 文件,它会在浏览器上打印消息。

vim src/main/webapp/index.jsp

现在让我们看看更改后的代码是否得到反映。

使用以下命令提交您在代码中所做的更改。

git add src/main/webapp/index.jsp
git commit -m "Changed Code to Hello World New!”
git push

点击 Apache Tomcat URL http://IP-of-Apache-Tomcat:8090/web_ex 访问我们的示例应用程序。

您可以看到最新的代码已经构建并部署在 Apache Tomcat 上,这意味着应用程序已成功部署并且管道也已成功触发。

如果您注意到我以前的代码只显示“Hello World!”,现在当我在 index.jsp 中进行更改并提交时,最新的应用程序显示“Hello World New!”。

结论

在本文中,我们看到了创建一个简单的 CI/CD 管道的步骤,该管道可以从 Github 存储库中提取您的代码,并在每次提交时将其部署到 Apache Tomcat 服务器上。我们也看到了在Jenkins中安装Jenkins、Apache Tomcat、Java、Plug-ins的步骤。

©2015-2025 Norria support@norria.com