我打算在我们公司建立一个新的Jenkins服务器。我想在各种原因(易于访问,访问控制等)中保留Jenkins中所有可部署的工件。通过NAS使用Jenkins
如果这些可部署的工件保存在NAS上,该公司宁愿选择。这对我来说没问题。我可以将Jenkins设置为使用NAS并简单地保留整个配置。我担心的是,由于它是通过网络连接的远程驱动器,因此一些项目的构建速度可能较慢。我想我可以配置有问题的作业来使用本地工作目录来根据需要加快速度。
但是,如果有一个简单的方法来设置Jenkins,以便工作目录自动在本地机器上,而其他所有内容都可以在NAS上,那将会很不错。那需要更少的设置和工作。我不必记得在需要时设置本地工作目录,而且我不必跟踪哪些作业有时髦的工作目录。
我看到两种方法可以这样做:
设置詹金斯使工作目录计算为一个特定的本地目录。例如,如果工作在
/mnt/nas/jenkins/jobs/foo
,工作目录将是/opt/jenkins/jobs/foo
或/opt/local/jenkins/foo
。以某种方式配置整个系统,以便某些目录是本地的,而其他的则是在NAS上。例如
/opt/local/jenkins/jobs/foo
下的所有目录都在NAS上,/opt/local/jenkins/jobs/foo/workdir
是本地存储。
是否有配置詹金斯自动使用不同的目录作为工作目录,而不是workdir
工作目录下的方法吗?或者有没有办法配置环境来做到这一点?
另一种替代方法是将您的发布工件发布到专用存储库,如Nexus。我希望Jenkins尽可能保持无状态,并使用我的回购作为发布记录。这种方法意味着我不那么依赖于特定的构建技术,并且不会受到数据丢失的影响 – 2012-08-05 10:13:00
我们使用的是Artifactory,并且我们一定会将我们在Artifactory中创建的罐子/战争放在一起,所以其他项目将通过Maven或Ivy 。然而,在Jenkins中保留你倾向于在生产中部署的工件(认为拉链,rpms和耳朵)有很大的优势。它将这些部署与发展联系起来。例如,“我们正在将foo.rpm部署到生产中,鲍勃是否做出了改变?” “是的,它是在Build#20中完成的,我们正在部署Build#21。”在詹金斯保持文物为我们提供了一种谈论各种版本的语言。 Build#22不稳定。 QA正在测试Build#40。 – 2012-08-06 02:09:18
的确如此。您也可以使用Nexus中的分段套件进行此操作。正如我上面所说,我的选择是有一个单一的记录系统。 – 2012-08-06 10:32:38