Jenkins를 안전하게 다시 시작하는 방법?


19

Jenkins를 몇 번 다시 시작해야하는 Jenkins 인스턴스에서 일부 구성을 변경해야합니다. 그러나 개발자가 3 일 동안 작업을 실행하지 않고 Jenkins를 보지 못할 정도로 자주 커밋하고 있습니다.

Jenkins를 안전하게 다시 시작하는 기본 방법이 있습니까 (GUI 또는 명령 줄을 통해)? IE : 현재 작업이 끝날 때까지 기다렸다가 Jenkins가 다시 시작되면 대기중인 작업을 추적하십시오.

플러그인 이 있다는 것을 알고 있지만 설치하려면 Jenkins를 다시 시작해야합니다 ...


내 머리 꼭대기에서 추측하지만, 노예를 비활성화하지 않는 옵션? (내가 기억하는 한, 진행중인 작업을 멈추지 않지만 대기열에서 추가 작업이 시작되는 것을 막습니다)
Tensibai

이론적으로 파이프 라인 작업을 실행하는 올바르게 구성된 Jenkins 인스턴스를 사용하면 원할 때마다 마스터 또는 슬레이브 노드를 다시 시작할 수 있습니다. 그러나 내 경험에 따르면 그렇지 않습니다.
jayhendren

답변:


14

탐색 $YOUR_JENKINS_URL/updateCenter/하면 다음 페이지가 표시됩니다.

여기에서 Restart Jenkins when installation is complete and no jobs are running어느 것이 안전해야하는지 확인할 수 있습니다.


플러그인이 설치 중일 때만 다시 시작이 발생한다는 것을 이해합니다. 플러그인을 설치하지 않고 다시 시작하도록 강제 할 수있는 방법이 없습니다.
Alex

1
@Alex 방금 인스턴스에서 테스트했으며 플러그인 설치에 관계없이 항상 작동하는 것 같습니다. stackoverflow.com/a/8077830 에 따르면 /safeRestart/restart엔드 포인트 도 있어야 합니다.
eyalzek

1
그러나 작업이 실행되는 동안 다시 시작하는 것에 대한 질문이 아닌가?
Dan Cornilescu

@ DanCornilescu 질문은 다음 IE: wait for current jobs to finish before going down, and keep track of queued jobs to start once Jenkins comes back up.과 같이 말합니다 .
eyalzek

나는 또한 질문이 말한대로 요청했다. Jenkins without jobs running in three days이는 일부 작업이 지연 될 때 영향을 미칠 것임을 의미한다. 그러나 여전히 일자리를 잃는 것보다 낫습니다.
Dan Cornilescu


8

Jenkins Rest API ( [jenkins_url] / safeRestart )를 사용하여 safeRestart 명령을 실행하거나 Jenkins CLI 를 통해 명령을 실행할 수 있습니다 .

sudo /etc/init.d/jenkins safeRestart

CLI 명령 실행

일반적인 구문은 다음과 같습니다 (디자인은 svn / git와 같은 도구와 유사합니다).

java -jar jenkins-cli.jar [-s JENKINS_URL] 명령 [옵션 ...] [인수 ...]

JENKINS_URL은 환경 변수 $ JENKINS_URL을 통해 지정할 수 있습니다. 이 환경 변수는 빌드 도중 Jenkins가 프로세스를 분기 할 때 자동으로 설정되므로 URL을 명시 적으로 구성하지 않고 빌드 내부에서 Jenkins CLI를 사용할 수 있습니다.

참고 : safeRestart 명령을 실행하면 서버가 다시 온라인 상태 일 때 재시작 중에 실행되도록 설정된 모든 작업이 대기하고 실행됩니다. 재부팅시 충돌이 발생하지 않도록하십시오!


1

나는 이것이 많은 사람들이 해결하려고하는 실제 문제라고 생각합니다. 플러그인 설치시 Jenkins를 다시 시작하는 것이 바람직한 경우가 있습니다. 내 경험을 바탕으로 제공 할 수있는 제안 중 하나는 다음과 같습니다.

  • 모든 개발자가 플러그인을 설치할 수 없도록 관리 모듈에 대한 액세스 제한
  • 다운 타임에 대해 개발자에게 지시하고 미리 알려줍니다.
  • 필요한 모든 플러그인을 일괄 설치하고 Jenkins를 다시 시작하십시오.
  • Jenkins를 사용할 준비가되었음을 개발자에게 알리십시오.

이를 위해서는 수동 노력과 조정이 필요하다는 것을 이해합니다. 그러나 이것은 우리 프로젝트에서 지금까지 잘 작동했으며 언급해도 아무런 해가 없었습니다.


1

Jenkins를 수동으로 다시 시작하려면 브라우저에 URL을 입력하여 다음 명령 중 하나를 사용할 수 있습니다.

(jenkins_url)/safeRestart-실행중인 모든 작업을 완료 할 수 있습니다. 재시작이 완료된 후에도 새 작업이 큐에 남아 실행됩니다.

(jenkins_url)/restart -빌드가 완료되기를 기다리지 않고 강제로 다시 시작합니다.



0

Jenkins는 다시 시작의 영향을받지 않도록 설계되었습니다. 내 경험에 따르면 다시 시작으로 인해 빌드가 실패 할 수 있지만 드문 경우입니다.

내가 일하는 곳에서 Jenkins를 정기적으로 다시 시작해야했습니다. 우리는 당신이 상상할 수있는 모든 종류의 직업을 가지고 있습니다. 한 번만 우리는 피클이 재수 화되지 않은 빌드 실패를 보았습니다.

그 후에는 항상 안전 재시작을 항상 수행합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.