OpenShift - Jenkins
이 페이지의 원 저자는 Fares
이 페이지는 Openshift(또는 Kubernetes) 클러스터에서 실행되는 Jenkins 인스턴스를 공격하는 방법에 대한 몇 가지 지침을 제공합니다.
면책 조항
Jenkins 인스턴스는 Openshift 또는 Kubernetes 클러스터 모두에 배포될 수 있습니다. 문맥에 따라 표시된 페이로드, yaml 또는 기술을 조정해야 할 수 있습니다. Jenkins를 공격하는 자세한 정보는 이 페이지를 참조하십시오.
전제 조건
1a. Jenkins 인스턴스에서의 사용자 액세스 또는 1b. 푸시/병합 후 자동 빌드가 트리거된 SCM 저장소에 쓰기 권한이 있는 사용자 액세스
작동 방식
근본적으로, 배후에서 거의 모든 것이 VM에서 실행되는 일반적인 Jenkins 인스턴스와 동일하게 작동합니다. 주요 차이점은 전반적인 아키텍처 및 빌드가 Openshift(또는 Kubernetes) 클러스터 내에서 어떻게 관리되는지입니다.
빌드
빌드가 트리거되면 먼저 Jenkins 마스터 노드에 의해 관리/조정되고, 그런 다음 에이전트/슬레이브/워커에게 위임됩니다. 이 문맥에서 마스터 노드는 그냥 일반적인 pod로 실행되는 것이며(워커가 실행되는 곳과 다를 수 있음), 워커/슬레이브에도 동일하게 적용됩니다. 그러나 빌드가 완료되면 워커/슬레이브는 파괴되지만 마스터는 항상 유지됩니다. 빌드는 일반적으로 Jenkins 관리자가 정의한 기본 pod 템플릿을 사용하여 pod 내에서 실행됩니다.
빌드 트리거
빌드를 트리거하는 주요 방법은 다음과 같습니다:
Jenkins에 UI 액세스 권한이 있는 경우
기존 빌드의 Replay 기능을 사용하는 것이 매우 쉽고 편리합니다. 이를 통해 이전에 실행된 빌드를 다시 실행하면서 groovy 스크립트를 업데이트할 수 있습니다. Jenkins 폴더에 권한이 필요하며 미리 정의된 파이프라인이 있어야 합니다. 은밀하게 작업해야 하는 경우 권한이 충분하다면 트리거된 빌드를 삭제할 수 있습니다.
SCM에 쓰기 액세스가 있고 자동 빌드가 웹훅을 통해 구성된 경우
빌드 스크립트(예: Jenkinsfile)를 편집하고 커밋하고 푸시할 수 있습니다(빌드가 PR 병합 시에만 트리거되는 경우 PR을 생성해야 함). 이 경로는 매우 시끄럽고 자신의 흔적을 지우려면 권한이 필요합니다.
Jenkins 빌드 Pod YAML 재정의
OpenShift - Jenkins Build Pod OverrideLast updated