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:
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.
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 OverrideLast updated