Jenkins가 작업을 실행하지 않음 (보류 중-다음 실행기를 기다리는 중)
Jenkins는 어떤 작업도 실행하지 않습니다. 이 질문 을 보았을 때 모든 슬레이브 노드를 비활성화했지만 간단한 작업은 마스터 노드에서도 실행되지 않습니다.
뭐가 잘못 되었 니?
Jenkins 관리 콘솔은 마스터 노드가 오프라인 상태에서도 실행할 수 있습니다. Jenkins의 디스크 공간이 부족할 때 발생할 수 있습니다.
확인하려면 다음을 수행하십시오 (geekride-jenkins-pending-waiting-for-next-available-executor 덕분에).
- Jenkins-> Jenkins 관리-> 노드 관리로 이동하십시오.
- "마스터"노드를 검사하여 오프라인인지 확인하십시오. 마스터 노드에 디스크 공간이 부족하다고보고 할 수 있습니다.
- Jenkins-> Jenkins 관리-> 노드 관리로 이동하십시오.
- "마스터"노드를 검사합니다 (구성 아이콘 클릭).
제 경우에는 No of executors가 0으로 설정되었습니다. 증가하고 문제가 해결되었습니다.
제 경우에는 JenkinsFile에 다음 세트가 있습니다.
node('node'){ ... }
'노드'라는 노드는없고 마스터 만 있습니다 (기본 자습서를 수행 한 후 값이 남아 있음). 값을 '마스터'로 변경하면 빌드가 작동합니다.
내 마스터가 "연결된 작업에만이 기계를 남겨두기"로 설정 되었기 때문에 비슷한 문제가 발생했습니다. 그래서 내가 슬레이브를 비활성화했지만 Jenkins는 계속 마스터를 우회하여 다른 것을 찾았습니다.
Jenkins-> Manage Jenkins-> Manage Nodes로 이동하여 마스터 노드의 구성 버튼을 클릭합니다 (스크루 드라이버 및 렌치 모양). 사용법을 확인하고 "이 슬레이브를 최대한 활용하십시오."로되어 있는지 확인하십시오.
게임에 조금 늦었지만 다른 사람들에게 도움이 될 수 있습니다.
제 경우에는 제 젠킨스 마스터에 외부 리소스가 공유되어 있는데, 외부 리소스는 external-resource-dispatcher-plugin에 의해 jenkins 작업에 할당됩니다 . 플러그인 (베타 버전)의 버그 JENKINS-19439 로 인해 내 리소스가 이전 작업에 의해 잠겼지만 이전 작업이 취소 될 때 잠금 해제되지 않은 것을 발견했습니다.
리소스가 현재 잠금 상태인지 확인하려면 영향을받는 jenkins 노드로 이동합니다. Jenkins-> Manage Jenkins-> Manage Nodes-> master
외부 리소스의 현재 상태를 확인해야합니다. 예기치 않게 잠긴 것이 작업이 실행기를 기다리는 이유 일 수 있습니다.
이 문제를 수동으로 해결하는 방법에 대한 세부 정보를 찾을 수 없습니다.
젠킨스를 다시 시작해도 문제가 해결되지 않았습니다.
결국 나는 잔인한 접근 방식으로 갔다.
- 외부 리소스를 제거합니다
(Jenkins-> Manage Jenkins-> Manage Nodes-> master-> configure 참조). - 젠킨스 다시 시작
- 외부 리소스 다시 만들기
필자의 경우 상자가 메모리 부족 (RAM) 일 때이 동작을 발견했습니다. Jenkins-> Manage Jenkins-> Manage Nodes로 이동하여 메모리 부족 예외를 발견했습니다. 방금 컴퓨터의 일부 메모리를 확보했고 작업이 실행 프로그램으로 이동하기 시작했습니다.
필자의 경우 방금 "Authorize Project"플러그인을 설치하고 "Manage Jenkins-> Configure Global Security-> Access Control for Builds"의 전략을 "Run as anonymous"로 잘못 설정했습니다. 따라서 '익명'은 작업을 실행할 권한이 없었습니다.
첫 번째 전략을 "빌드를 트리거 한 사용자로 실행"으로 설정하면 대기중인 작업이 잠금 해제되었습니다.
제 경우에는 실행자 수 (1 개가 있음)와 Pipeline에서 Jenkins Job (Project)을 실행 (제 파이프 라인 스크립트가 Jenkins에서 다른 Job을 시작 함) 으로 인해 발생했습니다 . 교착 상태가 발생했습니다. 내 파이프 라인은 실행자를 보유하고 작업을 기다리고 있었지만 작업은 무료 실행자를 기다리고있었습니다.
용액의 증가 될 수있다 # of executors
에서 Jenkins -> Manage Jenkins -> Manage Nodes -> Configure (icon on required node)
.
짧은 대답 : 마스터에서 실행중인 모든 작업을 종료하십시오.
제 경우에는 10 일 이상 마스터에게 3 개의 작업이 걸려 있었지만 눈에 띄지 않았습니다. 우리는 일반적으로 마스터에서 직접 작업을 실행하지 않으며 모든 것이 슬레이브에서 실행됩니다. 나는 매달린이 3 개의 일자리를 죽였고, 자동적으로 노예의 집행자들이 일자리를 얻기 시작했습니다.
8 개의 슬레이브가 있지만 1 개의 슬레이브 만이 영향을받은 상태에있었습니다.
[편집] 우리는 왜 단 하나의 슬레이브가이 영향을받는 상태에 있었는지에 대한 답을 찾았습니다. Jenkins 슬레이브가 다운되면 보류중인 모든 작업이 자동으로 마스터로 전송됩니다. 내가 죽인 3 개의 중단 된 작업은 모두이 슬레이브에서 왔으므로 마스터와이 특정 슬레이브 간의 연결 문제 일 가능성이 높습니다.
나를 위해 솔루션이 작동했습니다.
Jenkins-> Jenkins 관리-> 노드 관리-> 마스터-> 구성-> 노드 속성-> 노드에서 작업 실행 제한 -이 활성화되고 특정 사용자에게 액세스 권한이 부여됩니다. 나 자신에게 액세스 권한을 부여한 다음 작업이 실행되기 시작했습니다.
경우 노드에서 작업 실행을 제한 가능 예약 된 작업이 실행되지 않을 수 있습니다.
제 경우에는 @Michael Easter와 비슷합니다. 디스크 공간이 부족하여 작업에 문제가 생겼습니다. 나는 약간의 공간을 비우고 Jenkins를 다시 시작했지만 여전히 문제가 지속되었습니다.
해결책은 Jenkins-> Manage Jenkins-> Manage Nodes로 이동하여 버튼을 클릭하여 상태를 업데이트하는 것이 었습니다.
나를 위해 일한 것 : 마침내 메인 Jenkins 대시 보드의 왼쪽에 Build Executor Status 창을 발견했습니다. 2 개의 실행기로 로컬 시스템에서 개발 / 테스트 인스턴스를 실행합니다. 둘 다 현재 실행 중이 아닌 빌드로 가득 차 있습니다. 이 작업을 취소하면 세 번째 (보류중인) 작업을 실행할 수있었습니다.
나를 위해 수동으로 실행기를 다시 시작해야합니다. "Build Executor Status"에서 "Dead"를 클릭하고 다시 시작 버튼을 누릅니다.
내 마스터가 "# of executor (Jenkins가이 에이전트에서 수행 할 수있는 최대 동시 빌드 수)로 설정 되었기 때문에 비슷한 문제가 발생했습니다.
Jenkins-> Manage Jenkins-> Manage Nodes로 이동하고 마스터 노드의 구성 버튼을 클릭합니다 (한 번에 여러 작업을 실행하려면 실행기 수를 늘립니다).
In my case I've to set Execute concurrent builds if necessary
in job's General settings.
You may have milestones set up and your job won't run until the previous job is complete.
'Development Tip' 카테고리의 다른 글
파이썬 셸에서 클래스를 다시로드하는 방법? (0) | 2020.11.30 |
---|---|
ggplot2에 대한 미학 테이블이나 카탈로그가 있습니까? (0) | 2020.11.30 |
--prefer-dist 플래그에도 불구하고 작성기 종속성의 느린 업데이트 (0) | 2020.11.30 |
디스크에 쓰지 않고 AWS S3의 텍스트 파일을 Pandas로 가져 오는 방법 (0) | 2020.11.30 |
JQuery 아이콘 색상 지정 (재정의) 방법 (0) | 2020.11.30 |