关于Jenkins的注意事项
关于Jenkins自动化服务器的笔记。
引言
这是关于 Jenkins 自动化服务器 的说明。
背景
在本说明中,我将通过示例介绍以下主题。
- 如何将 Jenkins 安装到 Tomcat 服务器以及如何备份 Jenkins 配置和作业
- 示例 0 - 此示例旨在找出 Jenkins 代表其运行的用户、默认
JAVA_HOME
环境变量等。 - 示例 1 - 此示例旨在构建一个简单的 Maven 项目,我将其放在 GitHub 上。
- 示例 2 - 此示例旨在通过 Jenkins 将示例 1 构建的 WAR 文件部署到 Tomcat 服务器。
要安装/启动/管理 Jenkins,您需要计算机上的“管理”权限。您的计算机还需要互联网连接。
如何安装 Jenkins
有多种方法可以安装 Jenkins。在本说明中,我将 Jenkins 安装到运行在 CentOS 服务器 中的 Tomcat 服务器。如果您按照我之前的说明,您可以创建自己的 CentOS 服务器和自己的 Tomcat 实例。但您不需要使用 CentOS 服务器,您可以使用任何 Tomcat 实例来执行这些示例。
您可以从 Jenkins 的下载页面下载 Jenkins。我建议下载“通用 Java 包 (.war)”。然后您可以按照说明将 WAR 部署到 Tomcat。本说明中使用的包版本如下:
- JAVA - jdk1.8.0_172
- Tomcat - apache-tomcat-8.5.30
- Jenkins - 2.107.3
JENKINS_HOME
在将 WAR 文件部署到 Tomcat 之前,您需要修改 $CATALINA_HOME/conf/context.xml 文件,其中 $CATALINA_HOME 是您的 Tomcat 部署路径。
<Context>
<Environment name="JENKINS_HOME" value="/home/jenkins/" type="java.lang.String"/>
</Context>
JENKINS_HOME 路径将是 Jenkins 用于保存所有配置和作业的目录。
部署并运行 Jenkins
添加 JENKINS_HOME
变量后,您可以将 jenkins.war 文件复制到 $CATALINA_HOME/webapps/ 目录以完成部署。如果您的 Tomcat 正在运行,您可以访问 https://:8080/jenkins/ 来使用您的 Jenkins 服务。
首次访问 Jenkins 时,它会要求您打开 initialAdminPassword 文件以查找初始密码。输入初始密码后,您可以开始使用 Jenkins 安装“建议的插件”并创建自己的用户。
备份 Jenkins
根据文档,备份 Jenkins 是一项简单的工作。
- 所有设置、构建日志、工件归档都存储在 JENKINS_HOME 目录下。只需归档此目录即可进行备份。同样,恢复数据只需用备份内容替换 JENKINS_HOME 目录的内容。
- 可以在不停止服务器的情况下进行备份,但在恢复时请务必停止服务器。
以下是创建第一个管理用户后 JENKINS_HOME 目录的内容。
使用 SUDO 运行 Tomcat
某些系统可能允许您在没有管理权限的情况下启动 Tomcat。您可能能够启动 Tomcat,但 Jenkins 服务将无法启动。以下是我用来启动 Tomcat 实例的脚本。
export JAVA_HOME=/apps/jdk1.8.0_172/
CATALINA_HOME=/apps/apache-tomcat-8.5.31
sh $CATALINA_HOME/bin/startup.sh
启动 Tomcat 时,我明确提供了 JAVA_HOME
以指示 Tomcat 使用我选择的 JAVA 安装。
示例 0 - whoami & JAVA_HOME
从 Jenkins 主菜单 -> 新建项目 -> 自由风格项目,您可以创建您的第一个 Jenkins 项目。
作为示例 0,我希望它绝对简单,只有一个“执行 Shell”构建步骤。
尽管这个项目很简单,但它可能是最重要的 Jenkins 项目,因为它回答了关于 Jenkins 构建环境的几个非常重要的问题。以下是构建 Example-0
项目后的控制台输出。
结论
whoami
- 它显示 Jenkins 代表的用户是root
echo $JAVA_HOME
- 它显示默认情况下,JAVA_HOME
是您启动 Tomcat 服务器时使用的JAVA_HOME
which git
- 它显示默认情况下,git 是在root
搜索路径中找到的 git。在我的 CentOS 服务器中,git 默认已安装。
这些是简单而基本的问题,我相信当您遇到问题时,您将需要参考它们。您还可以在脚本执行中添加以下 bash 命令。
pwd
您会发现 Jenkins 项目 Example-0
的工作目录是 $JENKINS_HOME/workspace/Example-0。
示例 1 - git & Maven
在此示例中,我将创建一个 Jenkins 项目,该项目从 GitHub 拉取 Maven 项目并使用 Maven 构建它。
安装并告知 Jenkins Maven
为了构建 Maven 项目,我需要在我的计算机上提供 Maven。有多种方法可以安装 Maven,但我选择从 Maven 下载页面下载它。我希望对所使用的 Maven 实例拥有绝对控制权。
下载 tar.gz 后,我将其解压缩到 /apps 目录。我需要让 Jenkins 知道计算机上安装了 Maven。从 Jenkins 主菜单中,单击 管理 Jenkins -> 全局工具配置 -> Maven -> Maven 安装。
您可以为此 Maven 安装命名并指定位置,以便 Jenkins 可以使用它来构建项目。
示例-1 & Maven 构建
您可以创建自由风格项目 Example-1
。在源代码管理部分,您可以告诉 Jenkins 使用 git 拉取代码。存储库 URL 是 https://github.com/BigMountainTiger/lu-decomposition.git。由于它是公共存储库,因此您无需任何权限即可从存储库中拉取代码。
在构建部分,您可以添加调用顶级 Maven 目标构建步骤。您可以告诉 Jenkins 使用您在上一步中配置的 Maven 安装来构建项目。
如果一切顺利,您会发现代码从 GitHub 拉取,并且在启动构建后 Maven 成功运行。
示例 2 - 部署到容器
示例 2 的目标是通过 Jenkins 将示例 1 生成的 lu-decomposition.war 文件部署到 Tomcat 服务器。
在本说明中,为简单起见,我将 WAR 文件部署到运行 Jenkins 的同一 Tomcat 实例。我们需要修改 conf/ 目录中的 tomcat-users.xml 文件,以添加可以执行远程部署的用户。我们需要重新启动 Tomcat 以使此配置生效。
<tomcat-users xmlns="https://tomcat.net.cn/xml" version="1.0">
<user username="jenkins" password="pwd12345" roles="manager-script" />
</tomcat-users>
Jenkins 依赖于部署到容器插件来进行远程部署。从 Jenkins 主菜单 -> 管理 Jenkins -> 管理插件 -> 已安装并搜索部署以确保插件已安装。如果未安装,您需要安装它。
然后我们可以为示例 1 添加一个构建后操作。我们需要告诉 Jenkins war 文件的路径以及部署所需的凭据。
然后我们可以启动 Jenkins 构建。如果一切顺利,我们可以访问 https://:8080/lu-decomposition/ 并看到部署成功且网页正常运行。
“部署到容器插件”如何工作?
我实际上不确切知道部署到容器插件如何工作。但是如果您执行以下命令,您可以取消部署 Web 应用程序。
wget --http-user=jenkins --http-password=pwd12345
"https://:8080/manager/text/undeploy?path=/lu-decomposition" -O -
如果您执行以下命令,您可以将 WAR 文件部署到 Tomcat。
WAR=/home/jenkins/workspace/Example-1/target/lu-decomposition.war
wget --http-user=jenkins --http-password=pwd12345
"https://:8080/manager/text/deploy?war=file:$WAR&path=/lu-decomposition" -O
关注点
- 这是关于 Jenkins 自动化服务器的说明。
- 希望您喜欢我的帖子,并希望这篇说明能对您有所帮助。
历史
- 2018 年 5 月 10 日:第一次修订