使用jenkins构建RPM包

时间:2012-06-19 15:47:09

标签: installer jenkins rpm

我想使用Jenkins创建RPM包,将代码和脚本部署到Linux redhat机器上 所以应用程序是混合技术(无需编译)我只需将应用程序打包部署到正确的位置重启apache

是否有人会就如何为新手提供这些步骤提供一些指示:

有些问题:

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

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

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

  4. 由于

2 个答案:

答案 0 :(得分:2)

  • 您可以在不同的计算机上安装Jenkins,但通常必须在可以生成RPM包的计算机上安装Jenkins“node”,“slave”,“agent”。

  • 运行RPM软件包设置的每一步都是在Jenkins中构建所有步骤。如果你扩展你的构建系统来构建RPM,并且让Jenkins做它最擅长的事情,管理构建(日程安排等),而不是微观管理构建(执行步骤),它会更好。

    < / LI>

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

  • Jenkins可以轻松调用构建后任务来执行此操作,或者您可能希望根据口味配置执行更新的迷你“假”项目。

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

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

答案 1 :(得分: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;

大功告成。