Concourse Lab Creation

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Testno okruženje

Pokretanje Concourse-a

Pomoću Docker-Compose-a

Ovaj docker-compose fajl pojednostavljuje instalaciju za testiranje sa Concourse-om:

wget https://raw.githubusercontent.com/starkandwayne/concourse-tutorial/master/docker-compose.yml
docker-compose up -d

Možete preuzeti komandnu liniju fly za vaš operativni sistem sa veba na 127.0.0.1:8080

Sa Kubernetesom (Preporučeno)

Možete lako implementirati Concourse u Kubernetesu (na primer u minikube) koristeći helm-chart: concourse-chart.

brew install helm
helm repo add concourse https://concourse-charts.storage.googleapis.com/
helm install concourse-release concourse/concourse
# concourse-release will be the prefix name for the concourse elements in k8s
# After the installation you will find the indications to connect to it in the console

# If you need to delete it
helm delete concourse-release

Nakon generisanja concourse env-a, možete generisati tajnu i omogućiti pristup SA-u koji se izvršava u concourse web-u da pristupi K8s tajnama:

echo 'apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: read-secrets
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get"]

---

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-secrets-concourse
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: read-secrets
subjects:
- kind: ServiceAccount
name: concourse-release-web
namespace: default

---

apiVersion: v1
kind: Secret
metadata:
name: super
namespace: concourse-release-main
type: Opaque
data:
secret: MWYyZDFlMmU2N2Rm

' | kubectl apply -f -

Kreiranje Pipeline-a

Pipeline se sastoji od liste Poslova koji sadrže uređenu listu Koraka.

Koraci

Mogu se koristiti različite vrste koraka:

Svaki korak u planu posla se izvršava u svojem kontejneru. Možete pokrenuti bilo šta unutar kontejnera (npr. pokrenuti moje testove, pokrenuti ovaj bash skript, izgraditi ovu sliku, itd.). Dakle, ako imate posao sa pet koraka, Concourse će kreirati pet kontejnera, jedan za svaki korak.

Stoga je moguće naznačiti vrstu kontejnera u kojem treba pokrenuti svaki korak.

Jednostavan primer Pipeline-a

jobs:
- name: simple
plan:
- task: simple-task
privileged: true
config:
# Tells Concourse which type of worker this task should run on
platform: linux
image_resource:
type: registry-image
source:
repository: busybox # images are pulled from docker hub by default
run:
path: sh
args:
- -cx
- |
sleep 1000
echo "$SUPER_SECRET"
params:
SUPER_SECRET: ((super.secret))
fly -t tutorial set-pipeline -p pipe-name -c hello-world.yml
# pipelines are paused when first created
fly -t tutorial unpause-pipeline -p pipe-name
# trigger the job and watch it run to completion
fly -t tutorial trigger-job --job pipe-name/simple --watch
# From another console
fly -t tutorial intercept --job pipe-name/simple

Proverite 127.0.0.1:8080 da biste videli tok cevovoda.

Bash skripta sa izlaznim/ulaznim cevovodom

Moguće je sačuvati rezultate jednog zadatka u datoteci i naznačiti da je to izlaz, a zatim naznačiti ulaz sledećeg zadatka kao izlaz prethodnog zadatka. Ono što Concourse radi je da montira direktorijum prethodnog zadatka u novi zadatak gde možete pristupiti datotekama koje je kreirao prethodni zadatak.

Okidači

Nije potrebno ručno pokretati poslove svaki put kada ih želite pokrenuti, možete ih i programirati da se pokreću svaki put:

Pogledajte primer YAML cevovoda koji se okida na nove promene na glavnoj grani na https://concourse-ci.org/tutorial-resources.html

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated