释放磁盘空间后,jenkins 节点不会重新上线

释放磁盘空间后,jenkins 节点不会重新上线

我在看https://unix.stackexchange.com/search?q=jenkins& 詹金斯支持https://issues.jenkins.io

我在那里没有找到如何解决这个问题。

初始状态

节点和主服务器存在磁盘空间问题,并且不再触发管道。

空间问题解决后,节点仍然处于离线状态,忽略新状态。

如何将这些节点刷新到在线状态?

建筑学 :

  • 主机连接使用 java / git & ssh 取决于步骤/管道正在运行
  • 管道通常使用 git 来获取最后的 groovy 和脚本文件;并且还在节点上运行 jenkins groovy 文件
  • 步骤是在需要访问节点和运行脚本时在 bash 或 powershell 访问上调用 ssh。

完毕 :

  • 清理主詹金斯服务器上的 /var/lib

    find . -name "xxxx" -atime +365 -exec rm {} \;

  • 清理每个节点上的应用程序驱动器

    $limit = (Get-Date).AddDays(-30)
    $path = "xxxxxxx"
    Get-ChildItem -Path $path -Recurse -Force -filter XXXXX | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force
  • 在主詹金斯服务器上重新启动詹金斯服务

    sudo systemctl restart jenkins

当前状态 :

  • 这些节点保持离线状态(并且仍然显示错误相同的空间量警告,这就像它没有读取/检测新的可用空间
    Disk space is too low. Only 0.000GB left on F:\jenkins2.
    
    Agent is connected.

例如在机器上:

DriveType    : 3
ProviderName :
FreeSpace    : 255938342912
Size         : 449998483456
VolumeName   : Disk2

所以詹金斯忽略有关磁盘空间的问题已解决并保持点头离线如何使它们再次在线?

答案1

根据您的评论和问题编辑。看来空间问题不在于您的主机 RHEL 系统。

问题在于您的“Windows 映像”(我认为您指的是虚拟机)。空间问题显然是在谈论包含F:\jenkins2Windows 驱动器号F:和路径反斜杠路径分隔符的Windows 路径\。如果它是 Linux 路径,则路径中不会有任何路径:,并且它将使用正斜杠/作为路径分隔符。

您没有提供有关这些虚拟机类型超出“最小 Windows 映像”范围的信息,因此我无法提供有关如何清除现有映像的任何建议。为此,您可能需要在映像内运行命令行并手动删除文件。

你能做的是...

  • 确认您的现有构建仍然可以访问(并且不仅存储在构建节点中)。为此,只需登录 Jenkins 并检查您是否仍然可以从 Windows 构建下载构建工件。
  • 销毁您的构建映像并重新创建它们。根据您的虚拟机软件,也许可以将它们恢复到早期版本。

我还建议您将来检查您的詹金斯磁盘空间管理选项。我怀疑您的构建节点已填满了不需要保留的旧构建。

相关内容