Git-repositories

Bewaar formulieren, variabelenbestanden, configuratie en playbooks in git


Voor beheerders die formulieren, configuratie en playbooks in git bewaren: wat een repository kan bevatten en welke bron wint.


Waarvoor een repository dient

Een repository is een git-remote die AnsibleForms kloont en bijwerkt, en elke repository heeft schakelaars die zeggen wat ze bevat:

Schakelaar Wat AnsibleForms eruit leest Map in de repository
Gebruiken voor configuratie? config.yaml met de categorieën, rollen en constanten de root
Gebruiken voor formulieren? De formulierbestanden, die de ontwerper er ook in terug opslaat, en hun variabelenbestanden forms, of de root; variabelenbestanden in vars
Gebruiken voor playbooks? De Ansible-playbooks die jobs uitvoeren playbooks, of de root
Gebruiken voor workflows? De workflowbestanden, die de ontwerper er ook in terug opslaat elke map
Gebruiken voor inventarissen? Eén inventaris, genoemd naar de repository, waarnaar een formulier verwijst met inventory: de root: inventory.yaml, group_vars, host_vars

Zonder de submap wordt de root van de repository gebruikt. Eén repository kan alles bevatten; verdeel je het, dan mogen alleen Gebruiken voor formulieren, Gebruiken voor workflows en Gebruiken voor inventarissen op meerdere repositories aanstaan: de andere schakelaars nemen de eerste repository en loggen een waarschuwing.

Elke repository wordt gekloond in een submap met haar naam, onder REPO_PATH.

Eén repository voor alles

Eén repository kan formulieren, variabelenbestanden, configuratie en playbooks bevatten, met de schakelaars aan en één submap per soort.

forms-repo/
├── config.yaml        # categories, roles and constants
├── forms/             # form files (*.yaml)
├── playbooks/         # Ansible playbooks and roles
└── vars/              # vars files used by forms

Eén repository per doel

Met afzonderlijke repositories kunnen teams hun eigen deel beheren, met elk één schakelaar en de bestanden direct in de root.

Repository Schakelaar Inhoud in de root
af-config Gebruiken voor configuratie? config.yaml
af-forms-network, af-forms-storage Gebruiken voor formulieren? De formulierbestanden van elk team, samengevoegd tot één lijst
af-playbooks Gebruiken voor playbooks? De playbooks en rollen

Alleen formulieren kunnen uit meerdere repositories komen; configuratie en playbooks komen elk uit één. De variabelenbestanden komen uit de map vars van de eerste formulierenrepository die er een heeft.


Hoe repositories samengaan met lokale mappen

De inhoud van een repository vervangt de bijbehorende lokale map; deze tabel vat samen waar elk soort bestand vandaan wordt gelezen.

Inhoud Gelezen uit, de eerste treffer wint
Configuratie 1. de database, wanneer de configuratie daar wordt bewaard (ENABLE_CONFIG_IN_DATABASE)
2. config.yaml van de repository met Gebruiken voor configuratie
3. config.yaml van een repository met Gebruiken voor formulieren, wanneer geen repository voor configuratie wordt gebruikt
4. CONFIG_PATH
Formulieren Elke repository met Gebruiken voor formulieren plus FORMS_STAGING_PATH; FORMS_FOLDER_PATH alleen als er geen is
Playbooks De repository met Gebruiken voor playbooks, anders ANSIBLE_PATH
Variabelenbestanden De map vars van de eerste repository met Gebruiken voor formulieren die er een heeft, anders VARS_FILES_PATH
Workflows Elke repository met Gebruiken voor workflows plus WORKFLOWS_PATH, samen

Formulieren uit meerdere repositories worden samengevoegd tot één lijst. Bevatten twee ervan een formulier met dezelfde naam, dan blijft het eerst geladen formulier behouden en wordt de waarschuwing skipping duplicate form <name> gelogd, dus houd formuliernamen uniek over alle repositories.


Probleemoplossing

De meeste problemen zie je in de kolom Pull en in Uitvoer van laatste pull tonen (of Uitvoer van laatste push tonen), die de eigen foutmelding van git bevatten.

  • Een clone of pull van een repository is mislukt: authenticatie, known hosts en lokale wijzigingen.
  • De formulierenrepository is nog niet gekloond: de ontwerper kan niet opslaan vóór de eerste clone.
  • Een repository die vastzit in running, wordt teruggezet naar failed: na een herstart, bij de volgende start; binnen een minuut zodra het knooppunt dat zijn git-bewerking uitvoert 2 minuten niet meer antwoordt; en in elk geval na 2 uur. Voer Pull opnieuw uit.

In deze sectie

Elk onderwerp heeft een eigen pagina:

Pagina Wat er aan bod komt
Een repository toevoegen De pagina Repositories, elk veld van een repository, en er een declareren in de config seed
Authenticatie HTTPS met een token, SSH met de gegenereerde sleutel, en eigen git-commando’s
Wijzigingen pullen Geplande, handmatige en API-pulls, en lokale wijzigingen
Ontwerper en push Formulieren bewerken in de ontwerper en ze naar de repository pushen