4

我想使用 Jenkins 创建 RPM 包以将代码和脚本部署到 Linux redhat 机器上所以应用程序是技术的混合体(不需要编译)我只需要打包应用程序将它们部署到正确的位置重新启动阿帕奇

是否有人对如何为新手执行这些步骤提供一些说明:

一些问题:

  1. 如果我要创建将部署到 linux redhat 机器上的 RPM,我是否需要在本地 linux 机器上安装 jenkins(我希望在 windows 上安装 jenkins)

  2. 有没有人有一个从本地文件夹创建包的示例(目前没有源代码控制)我只想指定从哪里获取代码的目录并指定将代码部署到 rpm 的机器上安装在

  3. 在目标机器上,我想运行类似 yum -install mypackage-version12.rpm 的东西,它会将代码/脚本安装到指定的目录并重新启动 apache,我也需要一个这样的例子。

谢谢

4

2 回答 2

2
  • 您可以在不同的机器上安装 Jenkins,但通常必须在可以生成 RPM 包的机器上安装 Jenkins“节点”、“从属”、“代理”。

  • 运行 RPM 包设置的每一步都是在 Jenkins 中构建所有步骤。如果您扩展构建系统以构建 RPM,并让 Jenkins 做它最擅长的事情,管理构建(计划等),而不是微观管理构建(执行步骤),它会更好地工作。

根据您当前的构建系统,这可能包括用于设置 rpm 构建树、复制.spec文件以及对 rpmbuild 的可执行调用的 ant 指令。

  • Jenkins 可以轻松调用构建后任务来执行此操作,或者您可能想要配置一个迷你“假”项目来进行更新,具体取决于口味。

顺便说一句,要让 yum 命令在不使用 --localinstall 选项的情况下工作,您需要设置 Web 服务器,将新的 RPM 复制到 Web 服务器上的正确文件夹,并重建索引文件(repobuild 是这样做的脚本,如果我没记错的话)。

在客户端机器(将安装软件包)上,您需要有一个 yum 配置,该配置指示客户端机器将 Web 服务器包含为已知的 yum 存储库之一。

于 2012-06-19T15:54:12.167 回答
0

为什么不使用 Docker 映像通过专用阶段在其中构建 RPM?您的代码需要提供 /rpm/SPEC 文件,并且在 Docker (Jenkins) 中,您可以拥有一个 Jenkinsfile,例如:

mkdir -p ./rpm/BUILD && cd ./rpm/ && for f in ./SPECS/*; do rpmbuild --define \"_topdir \$(pwd)/\" --define \"_builddir \$(pwd)/BUILD\" -bb \$f;

你完成了。

于 2021-02-08T12:20:40.540 回答