Alternative CD
Pipeline oder Workflows als Alternative zu GitFS
Beispiel für eine Bitbucket Pipeline, welche bei jedem Push die States auf dem Master aktualisiert.
image: alpine:3.10
pipelines:
branches:
master:
- step:
name: Deploy to Salt Master
script:
- apk --no-cache add openssh-client rsync
- ls -la
- find . -type d -exec chmod 0770 {} \;
- find . -type f -exec chmod 0660 {} \;
- >-
rsync -av --delete -e "ssh -p <PORT>" . <HOST>:/srv/salt/
--exclude=.git
--exclude=.gitignore
--exclude=bitbucket-pipelines.yml
--delete-excludedSollte Ihr Salt-Master nicht per SSH aus dem öffentlichen Internet erreichbar sein, können Sie einen kostenlosen Account von Ngrok nutzen, um den SSH Port schnell und einfach freizugeben.
Legen Sie einen User an, welcher die Dateien synchronisiert. Nutzen Sie dazu nicht den Root-User.
Bierspielweise: useradd -m -r -s /bin/sh -d /var/lib/bitbucket bitbucket

Rufen Sie die Settings des Repositorys auf und generieren Sie im Bereich Pipelines > SSH Keys einen privaten Schlüssel. Kopieren Sie den öffentlichen Schlüssel in die Datei /var/lib/bitbucket/.ssh/authoriezd_keys. Achten Sie darauf, dass diese Datei dem Benutzer bitbucket und nicht Root gehört.
Rufen Sie den Fingerprint vom Salt-Master ab (Fetch), und fügen Sie diesen zum Repository hinzu. Die Pipeline ist nun einsatzbereit.
Last updated