詹金斯 - 神器处理

时间:2016-07-06 12:17:54

标签: linux bash jenkins webserver jenkins-plugins

我有一个Jenkins设置,由一个Master和两个Slaves组成。我有Jenkins作业(只在奴隶上运行),它会在每次提交时创建二进制文件。目前,Jenkins将这些工件存档到Jenkins Master中的某个位置。当我想使用bash shell脚本下载二进制文件时,我使用wget url_link_to_particular_artifact。我希望改变这一点。我想将所有生成的工件复制到主节点上的一个公共位置。因此,url将保持不变,并且只有最后一部分会相对于生成的二进制名称进行更改。我用标签标记我的二进制文件,以便以后检索它们。现在,是否有一个插件可以将工件复制到主节点,但是复制到我可以提供的位置。主节点和从节点都是redhat linux机器。

我已经浏览了Artifactory插件,我不想使用它。我想要一些非常简单的东西来实现。是否真的需要在主服务器上的位置运行Web服务器,我希望将工件复制到哪个位置?我可以通过SSH将工件从slave传输到master吗?如果是,怎么样?

修改

我取得了一些进展,现在我有点困惑:假设我们在Jenkins主节点上有一个正在运行的Web服务器。从属节点是否可以将工件发送到此位置,并且Web服务器将其写入到Master上该位置的文件系统中?

1 个答案:

答案 0 :(得分:0)

当然,这是可能的,但让我向你解释一下为什么这是一个坏主意。

Jenkins不是你的工件库。实际上,您可以将您的工件存储在Jenkins中,但它不是为此而设计的。如果你将为大部分工作做到这一点,你将遇到磁盘空间等问题,甚至是带有名字的竞争条件。 更不用说你不希望在一个目录中有数百或数千个文件。

更好的方法是使用工件存储库(例如Nexus)来存储工件。您可以通过不同的渠道轻松管理和检索它们。

请记住,将Jenkins保持在无状态模式并且版本控制您的配置以便于恢复将会很不错。

如果您仍想将工件存储在一个Web位置,我建议设置一个nginx服务器,对jenkins和/ artifacts的proxy / jenkins调用到您的工件目录。