我正在移植一个为使用Jenkins的声明性管道而构建的系统。一切都进行得很顺利,但在我目前正在运行的管道中,我看到了一些意想不到的奇怪现象。管道设置为在远程代理系统上执行所有阶段和步骤。管道具有并行阶段,在3个代理的6-8个执行者之间产生大量工作。这一切都很好。
但由于某些原因,当管道执行时,主节点上消耗的执行器似乎“镜像”了一个正在运行的远程执行器。它似乎没有做任何工作(主机上的CPU使用率非常低),但它确实占用了一个执行器插槽,并且在末尾有一个名称(例如:“#74-(tests)”),与另一个代理上当前执行的一个阶段的名称相匹配。
起初,我认为这可能是一个“飞重量”在主人身上运行,但从我在网上发现的,这听起来像是不应该采取遗嘱执行人。
这不是什么大问题,除非当多个构建从多个分支运行时,主节点上的执行器用完了,然后构建开始堆积。目前,我刚刚在master上分配了大量的执行者,但我不希望这样做,因为这也会为所有执行者的工作空间积累大量的存储空间。
我的问题是:这些遗嘱执行人是什么?这是可以预期的吗?
从我们所看到的,这是监视管道的并行部分的东西。在您的示例中,#74-(测试)
可能是一个并行阶段。
此阶段不会在已分配的存储之上占用任何额外的存储,因此其存储需求不会影响您。
您还可以在带有标签的专用节点上运行管道,如下所示:
pipeline {
agent {
node {
label 'master_pipeline_builder'
}
}
在该节点上分配相当多的执行器,这将在不影响主节点的情况下解决您的问题。
问题内容: 是否可以在管道常规脚本中直接调用PowerShell命令?在Jenkins中使用自定义作业时,我可以使用PowerShell插件调用该命令。但是在groovy脚本中没有片段可以使用它。 我也尝试过,但似乎此命令不允许在命令中包含多行和注释。 问题答案: 要从Groovy脚本调用PowerShell脚本,请执行以下操作: 您必须使用命令。 之后,您必须确保正确返回错误代码()变量(应导致
问题内容: 在groovy脚本中(用于jenkins管道):如何运行命令而不是命令? 我尝试了以下方法: 在通话中致电“ ” : 将呼叫替换为呼叫: 附加信息: 我的命令比命令更复杂。 问题答案: 您提供的Groovy脚本正在将结果脚本中的第一行格式化为空白行。shebang告诉脚本使用/ bin / bash而不是/ bin / sh运行,它需要位于文件的第一行,否则它将被忽略。 因此,您应该这
我在Jenkins有一些windows slave,所以我需要在管道中将文件复制到他们。我听说了Copy To Slave和Copy Artifact插件,但它们没有管道语法手册。所以我不知道如何在管道中使用它们。 直接复制不起作用。 此代码返回错误: 有没有办法复制文件从主从Jenkins管道?
我正试图在我的maven项目中使用Jenkins主从架构。我有windows机器上的Jenkins master和Linux机器上的slave。现在的问题是,当我运行Jenkins脚本时,它会给我一个错误,比如无法初始化git存储库,因为Jenkins正在尝试执行git。Linux从机上的exe。有人能告诉我怎么解决吗? 以下是我的Jenkins管道脚本和错误日志 错误如下
问题内容: 您是否知道如何在内部执行AWS CLI命令以构建管道?我没有找到任何插件 问题答案: 首先,您需要在服务器上安装aws cli,并确保jenkins用户有权运行它。 或者在创建EC2实例时简单地使用Amazon AMI,它附带了aws cli。 使用适当的策略为角色分配实例。(在aws configure中使用用户密钥更简单) 在管道步骤中使用
虚拟机镜像(本文简称镜像),是一个包含了虚拟磁盘和一个可启动的操作系统的文件。在云中,镜像可以用来创建虚拟机实例。如欲了解如何创建镜像文件,请参阅OpenStack Virtual Machine Image Guide 如果你权限够大,你可以上传和管理虚拟机镜像。操作人员可能会把上传和管理镜像的权限限制在云管理员和操作人员的角色上。如果你有相应权限,在控制台里,你可以在管理员Project中上传