IT/DevOps

[DevOps] Jenkins Pipeline이 종료되지 않는 경우

wookiist 2021. 6. 14. 00:01

Prologue

평화롭게 파이프라인 구성을 위한 테스팅을 진행하던 중, 갑자기 파이프라인이 종료되지 않는 문제가 발생했습니다. 스택 오버 플로우를 찾아보니, "Script Console"에서 명령줄을 넣어 실행하면 종료된다고 합니다. 하지만 그리 쉽게 문제가 해결되지 않았고, 좀 더 내려보다 보니, 직접 파이프라인 빌드 디렉터리를 삭제하고 Jenkins를 재시작하는 방법을 소개하는 답변이 있었습니다. 제 경우에는 이 해결 방법이 딱 맞아서, 이번 포스트에서는 이 내용을 소개하고자 합니다.

해결 방법

우선 Jenkins 서버에 SSH로 접속합니다. 만약 Docker 등으로 실행한 경우라면, docker exec 명령어 등을 사용해서 붙습니다. 만약 /bin/bash 또는 sh가 제공되지 않는다면, 아래 명령어를 반복해서 사용하여 문제가 되는 빌드의 위치를 찾습니다.

$ docker exec -it <jenkins name> ls -al /var/jenkins_home/jobs/<pipeline name>/builds
# 끝내고자 하는 빌드 번호가 존재하는지 찾습니다. 존재한다면 삭제합시다
$ docker exec -it <jenkins name> rm -rf /var/jenkins_home/jobs/<pipeline name>/builds/<build number>

물론 설치 방법에 따라 빌드가 보관되는 위치는 달라질 수 있습니다. 따라서 빌드가 보관된 위치를 먼저 찾고, 위 명령어를 수행하시기 바랍니다. 많은 경우, /var/lib/jenkins/... 아래에 존재하는 것을 확인했습니다. 제 경우에는 초기 배포시에 저런식으로 배포해서 일반적인 경우와 다른 것으로 보입니다.

마무리

여기까지 따라오시느라 고생이 많으셨습니다. 만약 이 글이 도움이 되셨다면 글 좌측 하단의 하트❤를 눌러주시면 감사하겠습니다.

혹시라도 글에 이상이 있거나, 이해가 가지 않으시는 부분, 또는 추가적으로 궁금하신 내용이 있다면 주저 마시고 댓글💬을 남겨주세요! 빠른 시간 안에 답변을 드리겠습니다 😊

참고

반응형