Repozytoria git

Przechowywanie formularzy, plików zmiennych, konfiguracji i playbooków w git


Dla administratorów, którzy przechowują formularze, konfigurację i playbooki w git: co może zawierać repozytorium i które źródło wygrywa.


Do czego służy repozytorium

Repozytorium to zdalne repozytorium git, które AnsibleForms klonuje i aktualizuje, a każde z nich ma przełączniki określające, co zawiera:

Przełącznik Co AnsibleForms z niego odczytuje Folder w repozytorium
Używać do konfiguracji? config.yaml z kategoriami, rolami i stałymi katalog główny
Używać do formularzy? Pliki formularzy, które projektant również do niego zapisuje, i ich pliki zmiennych forms lub katalog główny; pliki zmiennych w vars
Używać do playbooków? Playbooki Ansible uruchamiane przez zadania playbooks lub katalog główny
Używać do workflowów? Pliki workflow, które projektant również do niego zapisuje dowolny folder
Używać do inwentarzy? Jeden inwentarz nazwany tak jak repozytorium, który formularz wskazuje przez inventory: katalog główny: inventory.yaml, group_vars, host_vars

Bez podfolderu używany jest katalog główny repozytorium. Jedno repozytorium może zawierać wszystko; jeśli je rozdzielisz, tylko Używać do formularzy, Używać do workflowów i Używać do inwentarzy mogą być włączone w kilku: pozostałe przełączniki biorą pierwsze repozytorium i zapisują ostrzeżenie w logu.

Każde repozytorium jest klonowane do podfolderu nazwanego tak jak ono, w REPO_PATH.

Jedno repozytorium na wszystko

Jedno repozytorium może zawierać formularze, pliki zmiennych, konfigurację i playbooki, z włączonymi przełącznikami i jednym podfolderem na każdy rodzaj.

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

Jedno repozytorium na każde przeznaczenie

Osobne repozytoria pozwalają zespołom zarządzać własną częścią, z jednym przełącznikiem w każdym i plikami bezpośrednio w katalogu głównym.

Repozytorium Przełącznik Zawartość w katalogu głównym
af-config Używać do konfiguracji? config.yaml
af-forms-network, af-forms-storage Używać do formularzy? Pliki formularzy każdego zespołu, scalone w jedną listę
af-playbooks Używać do playbooków? Playbooki i role

Tylko formularze mogą pochodzić z kilku repozytoriów; konfiguracja i playbooki pochodzą każde z jednego. Pliki zmiennych pochodzą z folderu vars pierwszego repozytorium formularzy, które go ma.


Jak repozytoria łączą się z folderami lokalnymi

Zawartość repozytorium zastępuje odpowiedni folder lokalny; ta tabela podsumowuje, skąd odczytywany jest każdy rodzaj pliku.

Zawartość Odczytywana z, wygrywa pierwsze dopasowanie
Konfiguracja 1. bazy danych, gdy konfiguracja jest tam przechowywana (ENABLE_CONFIG_IN_DATABASE)
2. config.yaml repozytorium Używać do konfiguracji
3. config.yaml repozytorium Używać do formularzy, gdy żadne repozytorium nie jest używane do konfiguracji
4. CONFIG_PATH
Formularze Każde repozytorium Używać do formularzy plus FORMS_STAGING_PATH; FORMS_FOLDER_PATH tylko wtedy, gdy nie ma żadnego
Playbooki Repozytorium Używać do playbooków, w przeciwnym razie ANSIBLE_PATH
Pliki zmiennych Folder vars pierwszego repozytorium Używać do formularzy, które go ma, w przeciwnym razie VARS_FILES_PATH
Workflowy Każde repozytorium Używać do workflowów plus WORKFLOWS_PATH, razem

Formularze z kilku repozytoriów są scalane w jedną listę. Gdy dwa z nich zawierają formularz o tej samej nazwie, zachowywany jest ten załadowany jako pierwszy, a w logu pojawia się ostrzeżenie skipping duplicate form <name>, więc nazwy formularzy muszą być unikalne we wszystkich repozytoriach.


Rozwiązywanie problemów

Większość problemów widać w kolumnie Pull oraz w Pokaż wynik ostatniego pull (lub Pokaż wynik ostatniego push), które zawierają własny komunikat błędu git.


W tej sekcji

Każdy temat ma własną stronę:

Strona Czego dotyczy
Dodawanie repozytorium Strona Repozytoria, każde pole repozytorium i deklarowanie go w config seed
Uwierzytelnianie HTTPS z tokenem, SSH z wygenerowanym kluczem i własne polecenia git
Pobieranie zmian Pull zaplanowany, ręczny i przez API oraz zmiany lokalne
Projektant i push Edycja formularzy w projektancie i wypychanie ich do repozytorium