Saltstack
  • Willkommen
  • Einführung
  • Testumgebung
    • Salt-Master öffentlicher FQDN
  • Salt installieren
    • Minions und Master "verheiraten"
  • Salt Module
    • Beispiel Benutzer anlegen
    • Dateien hin und her kopieren
  • Salt States
    • Yaml verstehen
    • Editoren anpassen
    • Beispiel Benutzer verwalten
    • Abhängigkeiten
    • Dateien editieren
    • Shell Kommandos
    • Beispiel Caddy Webserver
  • Linter
  • Minions adressieren
    • Grains
    • Hostgruppen - Node Groups
  • Jinja
    • Beispiel Caddy PHP
  • top.sls
  • Output
  • Pillars
    • Hosts Pillars
    • GPG
    • Vault
    • Datenbanken
    • Beispiel Benutzerverwaltung
  • Salt-Mine
  • Eigene Module erstellen
  • Orchestrierung
  • Returner & Job-Cache
  • Salt SSH
  • Salt API
  • Salt Cloud
    • Hinweise und Fallen
    • KVM und Libvirt
    • Scaleway
    • Digitalocean
    • Hetzner Cloud
    • eigene Deploymentscripte
    • Dynamische Portforwarding
    • Keys automatisch aufräumen
    • Start Aktionen
  • GIT
    • Alternative CD
  • Salt Reactor
  • Salt für Windows
    • Software ohne Repository installieren
    • PowerShell
    • Chocolatey Paktemanager
    • Lokales Logon Skript
    • Software Repository
  • Beispiele
    • Restic Backup
    • Apache Web-Proxy
    • Wartungstunnel
    • Unattended Upgrades
  • Salt & Etcd
  • Salt ACS
Powered by GitBook
On this page
  1. GIT

Alternative CD

Pipeline oder Workflows als Alternative zu GitFS

PreviousGITNextSalt Reactor

Last updated 3 years ago

Beispiel für eine Bitbucket Pipeline, welche bei jedem Push die States auf dem Master aktualisiert.

bitbucket-pipelines.yml
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-excluded

Sollte Ihr Salt-Master nicht per SSH aus dem öffentlichen Internet erreichbar sein, können Sie einen kostenlosen Account von nutzen, um den SSH Port schnell und einfach freizugeben.

cd /tmp
wget "https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.tgz"
tar xzf ngrok-stable-linux-amd64.tgz
mv ngrok /usr/local/bin/
chmod +x /usr/local/bin/ngrok
rm ngrok-stable-linux-amd64.tgz
ngrok authtoken <YOU-TOKEN>
ngrok tcp 22 -log=stdout -log-format=json 2>&1 >/tmp/ssh-exposal.json &
jq < /tmp/ssh-exposal.json

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.

Ngrok
SSH Schlüssel und Known-Hosts des Repositorys