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.