GIT
Versionskontrolle und Teamwork
Last updated
Versionskontrolle und Teamwork
Last updated
Die Git-Integration von Salt war und ist eine "wackelige" Sache. Die Installation der benötigten Python-Module ist äußerst fragil. Auf einigen Distributionen, wie z.B. Ubuntu 24.04 gelingt die Installation nicht. Die ist veraltet. Diese bezieht sich auf eine Salt Version älter 3006 als Salt noch Python aus dem Betriebssystem verwendete.
Seit Version 3006 verwendet Salt nicht mehr die Pytoninstallation des Betriebssystems. Im Ordner /opt/saltstack/salt/lib/
verwaltet Salt seine . Deshalb müssen Sie die für den Salt-Master benötigte Python-Erweiterung mit dem Kommando salt-pip
installieren.
Hinterlegen Sie den Public Key im Git-Server, wenn möglich, als Read-only -Zugang.
Bei Bitbucket werden Read-only Zugänge über Access-Keys pro Repository verwaltet.
In GitHub hinterlegen Sie den öffentlichen Schlüssel als sogenannten Deploy Key
. Dazu klicken Sie innerhalb des Repositorys auf Settings
, und dann auf der linken Seite auf Deploy Keys
. Oben rechts finden Sie dann den Knopf Add Deploy Key
. Fügen Sie per Copy & Paste den Inhalt von /etc/salt/git.keys.d/master.pub
ein.
Mit dem Kommando salt-run fileserver.file_list
kontrollieren Sie, ob die States aus dem Git-Repository verfügbar sind.
Sollten die in Git gespeicherten States im Salt-Master nicht verfügbar sein, prüfen Sie, ob die SSH-Keys korrekt funktionieren.
Ergänzen Sie die ggf. schon existierende Konfiguration der sogenannten ext_pillar
.
Pillars, welche in einem Git-Repository liegen, brauchen ebenfalls eine top.sls
über die alle Pillar-Dateien inkludiert und Minions zugewiesen werden.
Nutzen Sie z.B. Forks oder Branches, damit jeder Mitarbeiter sein eigenes Repository mit States und Pillars zur Verfügung hat, um neue Konfigurationen zu erarbeiten und zu testen.
Jeder Mitarbeiter sollte über seinen eigenen lokalen Salt-Master verfügen, der an seinem persönlichen Fork "hängt". Nachdem neue States oder Pillars auf einem Fork getestet wurden, stellt der Mitarbeiter einen Pull-Request, damit die Änderungen in das produktive Master-Repository übernommen werden.
Pillars vom Type file_tree
können in Git speichert werden.