OpenShift - Jenkins

Oryginalnym autorem tej strony jest Fares

Ta strona zawiera wskazówki dotyczące atakowania instancji Jenkins działającej w klastrze Openshift (lub Kubernetes)

Oświadczenie

Instancja Jenkinsa może być wdrożona zarówno w klastrze Openshift, jak i Kubernetes. W zależności od kontekstu, możesz potrzebować dostosować wyświetlany payload, yaml lub technikę. Aby uzyskać więcej informacji na temat atakowania Jenkinsa, możesz zajrzeć na tę stronę

Wymagania wstępne

1a. Dostęp użytkownika do instancji Jenkinsa LUB 1b. Dostęp użytkownika z uprawnieniami do zapisu w repozytorium SCM, gdzie automatyczna kompilacja jest wyzwalana po pushu/merge'u

Jak to działa

Zasadniczo, niemal wszystko działa tak samo jak w przypadku zwykłej instancji Jenkinsa działającej w maszynie wirtualnej. Główną różnicą jest ogólna architektura i zarządzanie kompilacjami wewnątrz klastra Openshift (lub Kubernetes).

Kompilacje

Kiedy kompilacja jest wyzwalana, najpierw jest zarządzana/zorchestrowana przez węzeł główny Jenkinsa, a następnie przekazywana do agenta/slave'a/worker'a. W tym kontekście węzeł główny to po prostu zwykły pod działający w przestrzeni nazw (która może być inna niż ta, w której działają workery). To samo dotyczy workerów/slave'ów, jednak są one usuwane po zakończeniu kompilacji, podczas gdy węzeł główny zawsze pozostaje aktywny. Twoja kompilacja zazwyczaj jest uruchamiana wewnątrz poda, korzystając z domyślnego szablonu poda zdefiniowanego przez administratorów Jenkinsa.

Wywoływanie kompilacji

Masz kilka głównych sposobów na wywołanie kompilacji, takich jak:

  1. Masz dostęp do interfejsu użytkownika Jenkinsa

Bardzo łatwym i wygodnym sposobem jest skorzystanie z funkcji Replay istniejącej kompilacji. Pozwala ona na ponowne odtworzenie wcześniej wykonanej kompilacji, umożliwiając jednocześnie aktualizację skryptu groovy. Wymaga to uprawnień do folderu Jenkinsa i zdefiniowanej wcześniej konduity. Jeśli musisz działać po kryjomu, możesz usunąć wywołane kompilacje, jeśli masz wystarczające uprawnienia.

  1. Masz dostęp do zapisu w SCM i skonfigurowane są automatyczne kompilacje za pomocą webhooka

Możesz po prostu edytować skrypt kompilacji (takiego jak Jenkinsfile), zatwierdzić i wysłać (ewentualnie utworzyć PR, jeśli kompilacje są wyzwalane tylko przy scalaniu PR). Pamiętaj, że ta ścieżka jest bardzo hałaśliwa i wymaga podniesionych uprawnień, aby wyczyścić swoje ślady.

Zastąpienie YAML kompilacji Jenkinsa

OpenShift - Jenkins Build Pod Override

Last updated