jenkins - 新的 jenkins 从节点何时以及如何有资格在其上执行作业?
问题描述
我们的 jenkins 主/从节点有以下设置:一个静态和固定的主节点(主节点上不会执行任何作业)和从节点的动态启动,如果 AWS EC2 jenkins 从节点空闲 30 分钟,我们也会终止它。
当它需要执行一项新作业时,它将根据Manage Jenkins ---> Configure System ---> Cloud ---> Amazon EC2中定义的配置配置一个从属设备。它还有一些初始化脚本部分可以根据我们的需要进行安装和配置。
当一个新节点启动时,最初我们在以下页面上看到它处于离线状态: https ://jenkins.xxxxx.xxxxx.com/computer/
当它正在执行初始化脚本内容时(在我们的例子中,完成所有提到的命令大约需要 10 分钟)一个在构建队列中等待的 jenkins 作业被分配给这个新节点,人们在作业控制台输出并中止构建,认为作业已分配给不再存在的离线从属/节点
仍在等待安排任务
'EC2 (Jenkins Slave) - jenkins-dev-docker-slave (i-xxxxxxxxx)' 离线;'EC2 (Jenkins Slave) - jenkins-dev-docker-slave (i-xxxxxxxxxx)' 离线
我们有什么办法可以指定一个配置,等待从节点/代理准备好(代理成功连接并在线)执行作业,而不是在初始化脚本命令执行完成之前分配?
注意:-所有这些都是管道作业和 linux slaves/nodes。詹金斯版本:2.190.1
如果有人需要任何其他详细信息,请告诉我。
问候, 帕万
解决方案
根据我们的经验,标签上安排的作业或阶段将等到该标签上至少有一个奴隶在线。那时,它将开始在该标签上执行。如果没有可用的从站,则作业/阶段将永远等待,除非在作业/阶段上指定超时。我们可以启动一个管道,让它等待一个标签,启动一个从属设备,为其分配一个标签,然后作业将在那里开始执行。
所以你在这里的经历和我们的很不一样。
可能是您的奴隶在线(因此安排了一项工作),但由于某种原因它离线了。如果是这种情况,您可能需要查看它的状态,或玩弄MAX_DURABILITY
设置。
推荐阅读
- unity3d - Unity Build 以混合现实为目标,但未出现在应用程序中
- c - C 编程 - 进程以状态 -1073741510 终止
- php - 如何使用 Eloquent 在 Laravel 中从多个选择中保存数组数据
- java - 为什么 sendKeys 不能随时发送每个字符?
- reactjs - React-redux 在线示例不应该工作
- python - Python venv 与 python3.6 显式工作,但不适用于 python3.8
- xcode - 使用 org.openbakery.xcode-plugin 中的“xcode-plugin”的示例项目
- python - 如何在每个 Spark Dataframe 分区中使用 GROUPED_MAP pandas udf?
- javascript - 在IONIC 5中使用leaflet.js单击选项卡时,获取地图容器已经初始化
- javascript - Chrome 扩展“chrome.storage.local”数据更新问题