Concourse Lab Creation
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Testumgebung
Concourse ausführen
Mit Docker-Compose
Diese Docker-Compose-Datei vereinfacht die Installation, um einige Tests mit Concourse durchzuführen:
Sie können die Befehlszeile fly
für Ihr Betriebssystem von der Website unter 127.0.0.1:8080
herunterladen.
Mit Kubernetes (Empfohlen)
Sie können Concourse einfach in Kubernetes (zum Beispiel in minikube) mit dem Helm-Chart bereitstellen: concourse-chart.
Nachdem Sie die Concourse-Umgebung erstellt haben, können Sie ein Geheimnis generieren und dem SA, der in Concourse Web ausgeführt wird, Zugriff auf K8s-Geheimnisse gewähren:
Pipeline erstellen
Eine Pipeline besteht aus einer Liste von Jobs, die eine geordnete Liste von Steps enthält.
Schritte
Es können mehrere verschiedene Arten von Schritten verwendet werden:
der
task
Schritt führt eine Aufgabe ausder
get
Schritt ruft eine Ressource abder
put
Schritt aktualisiert eine Ressourceder
set_pipeline
Schritt konfiguriert eine Pipelineder
load_var
Schritt lädt einen Wert in eine lokale Variableder
in_parallel
Schritt führt Schritte parallel ausder
do
Schritt führt Schritte sequenziell ausder
across
Schrittmodifikator führt einen Schritt mehrfach aus; einmal für jede Kombination von Variablenwertender
try
Schritt versucht, einen Schritt auszuführen und hat Erfolg, selbst wenn der Schritt fehlschlägt
Jeder Schritt in einem Job-Plan wird in seinem eigenen Container ausgeführt. Sie können alles, was Sie möchten, im Container ausführen (d.h. meine Tests ausführen, dieses Bash-Skript ausführen, dieses Image erstellen usw.). Wenn Sie also einen Job mit fünf Schritten haben, erstellt Concourse fünf Container, einen für jeden Schritt.
Daher ist es möglich, den Typ des Containers anzugeben, in dem jeder Schritt ausgeführt werden muss.
Einfaches Pipeline-Beispiel
Check 127.0.0.1:8080 um den Pipeline-Fluss zu sehen.
Bash-Skript mit Ausgabe/Eingabe-Pipeline
Es ist möglich, die Ergebnisse einer Aufgabe in einer Datei zu speichern und anzugeben, dass es sich um eine Ausgabe handelt, und dann die Eingabe der nächsten Aufgabe als die Ausgabe der vorherigen Aufgabe anzugeben. Was Concourse tut, ist, das Verzeichnis der vorherigen Aufgabe in der neuen Aufgabe zu mounten, wo Sie auf die von der vorherigen Aufgabe erstellten Dateien zugreifen können.
Trigger
Sie müssen die Jobs nicht jedes Mal manuell auslösen, wenn Sie sie ausführen möchten, Sie können sie auch so programmieren, dass sie jedes Mal ausgeführt werden:
Es vergeht etwas Zeit: Time resource
Bei neuen Commits zum Hauptbranch: Git resource
Neue PRs: Github-PR resource
Holen oder pushen Sie das neueste Bild Ihrer App: Registry-image resource
Überprüfen Sie ein YAML-Pipeline-Beispiel, das bei neuen Commits auf master in https://concourse-ci.org/tutorial-resources.html ausgelöst wird.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Last updated