디스크 공간을 확보한 후 Jenkins 노드가 다시 온라인 상태로 돌아오지 않습니다.

디스크 공간을 확보한 후 Jenkins 노드가 다시 온라인 상태로 돌아오지 않습니다.

내가 찾고 있어요https://unix.stackexchange.com/search?q=jenkins& 젠킨스 지원https://issues.jenkins.io

나는 이 문제를 해결하는 방법을 찾지 못했습니다.

초기 상태

노드와 마스터에 디스크 공간 문제가 있어 파이프라인이 더 이상 트리거되지 않습니다.

공간 문제가 해결된 후에도 노드는 오프라인 상태로 유지되고 새 상태는 무시됩니다.

이러한 노드를 온라인 상태로 새로 고치려면 어떻게 해야 합니까?

건축학:

  • 호스트 연결은 실행 중인 단계/파이프라인에 따라 java/git 및 ssh를 사용합니다.
  • 파이프라인은 일반적으로 git을 사용하여 최종 Groovy 및 스크립트 파일을 가져오고 노드에서 jenkins Groovy 파일도 실행합니다.
  • 단계는 노드에 액세스하고 스크립트를 실행해야 할 때 bash 또는 powershell 액세스에서 ssh를 호출하는 것입니다.

완벽한:

  • 기본 Jenkins 서버에서 /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
  • 마스터 Jenkins 서버에서 Jenkins 서비스를 다시 시작합니다.

    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

그렇다면 Jenkins는 디스크 공간에 대한 문제를 무시하고 해결되었으며 오프라인으로 계속 고개를 끄덕이는 방법을 다시 온라인으로 만드는 방법은 무엇입니까?

답변1

귀하의 의견과 질문을 바탕으로 편집되었습니다. 공간 문제는 호스트 RHEL 시스템과 관련이 없는 것 같습니다.

문제는 "Windows 이미지"에 있습니다(가상 머신을 의미하는 것 같습니다). 공간 문제는 분명히 F:\jenkins2Windows 드라이브 문자 F:와 경로의 백슬래시 경로 구분 기호를 포함하는 Windows 경로에 대해 이야기하고 있습니다 \. Linux 경로인 경우 경로가 없으며 슬래시를 경로 구분 기호로 :사용합니다 ./

"최소 Windows 이미지" 범위를 벗어나는 이러한 VM 유형에 대한 정보를 제공하지 않았으므로 기존 이미지를 정리하는 방법에 대한 제안을 제공할 수 없습니다. 이렇게 하려면 이미지 내에서 명령줄을 실행하고 파일을 수동으로 삭제해야 할 수도 있습니다.

당신이 할 수 있는 일은...

  • 기존 빌드에 계속 액세스할 수 있는지 확인하세요(빌드 노드에만 저장되어 있는 것이 아님). 이렇게 하려면 Jenkins에 로그인하여 Windows 빌드에서 빌드 아티팩트를 계속 다운로드할 수 있는지 확인하세요.
  • 빌드 이미지를 삭제하고 다시 만듭니다. 가상 머신 소프트웨어에 따라 이전 버전으로 복원하는 것이 가능할 수도 있습니다.

앞으로는 Jenkins를 확인해 보시는 것도 좋습니다.디스크 공간 관리 옵션. 귀하의 빌드 노드가 유지될 필요가 없는 오래된 빌드로 채워져 있는 것 같습니다.

관련 정보