Linux 詹金斯-工件处理

Linux 詹金斯-工件处理,linux,bash,jenkins,webserver,jenkins-plugins,Linux,Bash,Jenkins,Webserver,Jenkins Plugins,我有一个詹金斯机构,由一个主人和两个奴隶组成。我有Jenkins作业(只在从机上运行),它将在每次提交时创建二进制文件。目前,詹金斯将这些文物归档到詹金斯大师的某个地方。当我希望使用bashshell脚本下载二进制文件时,我使用wget-url\u-link\u-to\u-specific\u-artifact。我想改变这个。我想将所有生成的工件复制到主节点上的一个公共位置。因此,url将保持不变,并且只有最后一部分将根据生成的二进制名称进行更改。我用标签标记我的二进制文件,以便以后很容易检索它

我有一个詹金斯机构,由一个主人和两个奴隶组成。我有Jenkins作业(只在从机上运行),它将在每次提交时创建二进制文件。目前,詹金斯将这些文物归档到詹金斯大师的某个地方。当我希望使用bashshell脚本下载二进制文件时,我使用
wget-url\u-link\u-to\u-specific\u-artifact
。我想改变这个。我想将所有生成的工件复制到主节点上的一个公共位置。因此,url将保持不变,并且只有最后一部分将根据生成的二进制名称进行更改。我用标签标记我的二进制文件,以便以后很容易检索它们。现在,是否有一个插件可以将工件复制到主节点中,但复制到我可以提供的位置。主节点和从节点都是redhat linux机器

我已经浏览了Artifactory插件,我不想使用它。我想要一些真正简单的实现。是否真的需要在主机上我希望将工件复制到的位置运行web服务器?我可以通过SSH将工件从从属服务器传输到主服务器吗?如果是,如何进行

编辑:


我已经取得了一些进展,现在有点卡住了:假设我们在运行的Jenkins主节点上有一个web服务器。从属节点是否可能将工件发送到此位置,web服务器是否会将其写入主节点上该位置的文件系统中???

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

詹金斯不是你的工件库。事实上,您可以将您的工件存储在Jenkins中,但它不是专门设计用来存储工件的。如果您在大多数作业中都这样做,您将遇到磁盘空间等问题,甚至会遇到名称争用的情况。 更不用说你不想在一个目录中有成百上千个文件

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

请记住,最好让Jenkins处于无状态模式,并对配置进行版本控制,以便轻松恢复


如果您仍然希望将工件存储在一个web位置,我建议您设置一个nginx服务器,proxy/jenkins调用jenkins并/artifacts调用您的工件目录。

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

詹金斯不是你的工件库。事实上,您可以将您的工件存储在Jenkins中,但它不是专门设计用来存储工件的。如果您在大多数作业中都这样做,您将遇到磁盘空间等问题,甚至会遇到名称争用的情况。 更不用说你不想在一个目录中有成百上千个文件

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

请记住,最好让Jenkins处于无状态模式,并对配置进行版本控制,以便轻松恢复


如果您仍然希望将工件存储在一个web位置,我建议您设置一个nginx服务器,proxy/jenkins调用jenkins并/artifacts调用工件目录。

您尝试过另一个吗?或者,您可以运行一个我认为我们可以使用工件部署器仅将工件部署到从属节点(构建运行的节点)。我想将其复制到主节点。是的,剧本在我脑海中,但我想把它作为最后的手段。如果已经有很好的插件可用,那么我想首先利用它。自从我上次配置分布式作业以来已经有一段时间了,我没有访问这样一个系统进行快速测试,但是如果我没有弄错的话,Jenkins会自动传输构建在从机上的主工件,至少出于存档目的。如果不是这样,您可以使用向从属节点传输文件和从从属节点传输文件。我可以使用复制到从属插件将工件复制回主节点,但复制到主节点上作业工作区以外的位置吗?我找不到正确的文档。你试过其他文档了吗?或者,您可以运行一个我认为我们可以使用工件部署器仅将工件部署到从属节点(构建运行的节点)。我想将其复制到主节点。是的,剧本在我脑海中,但我想把它作为最后的手段。如果已经有很好的插件可用,那么我想首先利用它。自从我上次配置分布式作业以来已经有一段时间了,我没有访问这样一个系统进行快速测试,但是如果我没有弄错的话,Jenkins会自动传输构建在从机上的主工件,至少出于存档目的。如果不是这样,您可以使用向从属节点传输文件和从从属节点传输文件。我可以使用复制到从属插件将工件复制回主节点,但复制到主节点上作业工作区以外的位置吗?我找不到正确的文件。是的,我同意你的回答。这只是解决问题的临时解决办法。这些工件只是二进制文件,稍后将进行回归测试等。因此,在任何时间段都不需要出现超过2-3个工件。关于答案的第二部分,难道没有一个插件可以让从属服务器将工件发送到主服务器上的web服务器,然后服务器将其写入文件系统吗?我不希望代理调用,因为我需要两个工件的副本-一个在
$JENKINS_HOME
中,另一个在这个特定位置。JENKINS应该允许将工件存储在单独的位置。这将消除磁盘空间的问题。是的,我同意你的答案。这只是解决问题的临时解决办法。这些工件只是二进制文件,稍后用于回归测试