Concourse Lab Creation

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Test Ortamı

Concourse’u Çalıştırma

Docker-Compose ile

Bu docker-compose dosyası, concourse ile bazı testler yapmak için kurulumu basitleştirir:

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

fly komut satırını işletim sisteminiz için 127.0.0.1:8080 adresinden indirebilirsiniz.

Kubernetes ile (Tavsiye Edilen)

Kubernetes’te (örneğin minikube’da) helm-chart kullanarak concourse’u kolayca dağıtabilirsiniz: 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

Concourse ortamını oluşturduktan sonra, bir gizli anahtar oluşturabilir ve concourse web’de çalışan SA’ya K8s gizli anahtarlarına erişim verebilirsiniz:

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 -

Pipeline Oluştur

Bir pipeline, sıralı bir Jobs listesi ile yapılır ve bu liste bir Steps listesi içerir.

Adımlar

Birçok farklı türde adım kullanılabilir:

Her step bir job plan içinde kendi konteynerinde çalışır. Konteyner içinde istediğiniz her şeyi çalıştırabilirsiniz (yani testlerimi çalıştır, bu bash scriptini çalıştır, bu resmi oluştur, vb.). Dolayısıyla, beş adımı olan bir işiniz varsa, Concourse her adım için bir tane olmak üzere beş konteyner oluşturacaktır.

Bu nedenle, her adımın çalıştırılması gereken konteyner türünü belirtmek mümkündür.

Basit Pipeline Örneği

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

127.0.0.1:8080 adresini kontrol edin, pipeline akışını görmek için.

Çıktı/girdi pipeline’ı ile Bash scripti

Bir görevin sonuçlarını bir dosyada kaydetmek ve bunun bir çıktı olduğunu belirtmek, ardından bir sonraki görevin girdisini önceki görevin çıktısı olarak belirtmek mümkündür. Concourse’un yaptığı şey, önceki görevin dizinini yeni görevde monte etmek ve önceki görev tarafından oluşturulan dosyalara erişmektir.

Tetikleyiciler

Görevleri her seferinde manuel olarak tetiklemek zorunda değilsiniz, bunları her seferinde çalışacak şekilde programlayabilirsiniz:

Ana dalda yeni commitler tetikleyen bir YAML pipeline örneğini kontrol edin: https://concourse-ci.org/tutorial-resources.html

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin