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