Git-Repositories
Formulare, Variablendateien, Konfiguration und Playbooks in git aufbewahren
Für Admins, die Formulare, Konfiguration und Playbooks in git aufbewahren: was ein Repository enthalten kann und welche Quelle Vorrang hat.
Wofür ein Repository da ist
Ein Repository ist ein git-Remote, das AnsibleForms klont und aktuell hält, und jedes hat Schalter, die sagen, was es enthält:
| Schalter | Was AnsibleForms daraus liest | Ordner im Repository |
|---|---|---|
| Für Konfiguration verwenden? | config.yaml mit den Kategorien, Rollen und Konstanten | das Stammverzeichnis |
| Für Formulare verwenden? | Die Formulardateien, die der Designer auch dorthin zurückspeichert, und ihre Variablendateien | forms oder das Stammverzeichnis; Variablendateien in vars |
| Für Playbooks verwenden? | Die Ansible-Playbooks, die Jobs ausführen | playbooks oder das Stammverzeichnis |
| Für Workflows verwenden? | Die Workflow-Dateien, die der Designer auch dorthin zurückspeichert | jeder Ordner |
| Für Inventare verwenden? | Ein Inventar, nach dem Repository benannt, das ein Formular mit inventory: nennt | das Stammverzeichnis: inventory.yaml, group_vars, host_vars |
Ohne den Unterordner wird das Stammverzeichnis des Repositorys verwendet. Ein Repository kann alles enthalten; wenn Sie aufteilen, dürfen nur Für Formulare verwenden, Für Workflows verwenden und Für Inventare verwenden bei mehreren eingeschaltet sein: Die anderen Schalter nehmen das erste Repository und protokollieren eine Warnung.
Jedes Repository wird in einen nach ihm benannten Unterordner unter REPO_PATH geklont.
Ein Repository für alles
Ein einzelnes Repository kann Formulare, Variablendateien, Konfiguration und Playbooks enthalten, mit eingeschalteten Schaltern und einem Unterordner pro Art.
forms-repo/
├── config.yaml # categories, roles and constants
├── forms/ # form files (*.yaml)
├── playbooks/ # Ansible playbooks and roles
└── vars/ # vars files used by forms
Ein Repository pro Zweck
Getrennte Repositories lassen Teams ihren Teil besitzen, mit je einem Schalter und den Dateien direkt im Stammverzeichnis.
| Repository | Schalter | Inhalt im Stammverzeichnis |
|---|---|---|
af-config | Für Konfiguration verwenden? | config.yaml |
af-forms-network, af-forms-storage | Für Formulare verwenden? | Die Formulardateien jedes Teams, zu einer Liste zusammengeführt |
af-playbooks | Für Playbooks verwenden? | Die Playbooks und Rollen |
Nur Formulare können aus mehreren Repositories kommen; Konfiguration und Playbooks kommen jeweils aus einem. Die Variablendateien kommen aus dem Ordner vars des ersten Formular-Repositorys, das einen hat.
Wie Repositories mit lokalen Ordnern zusammenspielen
Der Inhalt eines Repositorys ersetzt den passenden lokalen Ordner; diese Tabelle fasst zusammen, woher jede Dateiart gelesen wird.
| Inhalt | Gelesen aus, der erste Treffer gewinnt |
|---|---|
| Konfiguration | 1. der Datenbank, wenn die Konfiguration dort gehalten wird (ENABLE_CONFIG_IN_DATABASE) 2. config.yaml des Repositorys Für Konfiguration verwenden 3. config.yaml eines Repositorys Für Formulare verwenden, wenn kein Repository für die Konfiguration verwendet wird 4. CONFIG_PATH |
| Formulare | Jedes Repository Für Formulare verwenden plus FORMS_STAGING_PATH; FORMS_FOLDER_PATH nur, wenn es keines gibt |
| Playbooks | Das Repository Für Playbooks verwenden, sonst ANSIBLE_PATH |
| Variablendateien | Der Ordner vars des ersten Repositorys Für Formulare verwenden, das einen hat, sonst VARS_FILES_PATH |
| Workflows | Jedes Repository Für Workflows verwenden plus WORKFLOWS_PATH, zusammen |
Formulare aus mehreren Repositories werden zu einer Liste zusammengeführt. Enthalten zwei davon ein Formular mit demselben Namen, wird das zuerst geladene behalten und die Warnung skipping duplicate form <name> protokolliert; halten Sie Formularnamen also über alle Repositories hinweg eindeutig.
Fehlerbehebung
Die meisten Probleme zeigen sich in der Spalte Pull und in Ausgabe des letzten Pulls anzeigen (oder Ausgabe des letzten Pushs anzeigen), die die eigene Fehlermeldung von git enthalten.
- Ein Clone oder Pull eines Repositorys ist fehlgeschlagen: Authentifizierung, bekannte Hosts und lokale Änderungen.
- Das Formular-Repository ist noch nicht geklont: Der Designer kann vor dem ersten Clone nicht speichern.
- Ein Repository, das in
runninghängt, wird auffailedzurückgesetzt: nach einem Neustart beim nächsten Start; innerhalb einer Minute, sobald der Knoten, der seine git-Operation ausführt, seit 2 Minuten nicht mehr antwortet; und in jedem Fall nach 2 Stunden. Führen Sie Pull erneut aus.
In diesem Abschnitt
Jedes Thema hat eine eigene Seite:
| Seite | Inhalt |
|---|---|
| Ein Repository hinzufügen | Die Seite Repositories, jedes Feld eines Repositorys, und eines im Config-Seed deklarieren |
| Authentifizierung | HTTPS mit einem Token, SSH mit dem erzeugten Schlüssel und eigene git-Befehle |
| Änderungen pullen | Geplante, manuelle und API-Pulls, und lokale Änderungen |
| Designer und Push | Formulare im Designer bearbeiten und ins Repository pushen |