eugene0707.merge_custom_vars
merge_custom_vars
Ładuj pliki zmiennych z możliwością ustawienia priorytetu i głębokiego scalania hashy wewnątrz. Domyślnie pliki zmiennych są ładowane z folderu rpi_vars w rolach zawartych w playbooku, z możliwością nadpisania przez rpi_vars z katalogu playbooka, a najwyższy priorytet mają zmienne rpi_vars z inwentarza. Możesz ustawić własną listę plików/folderów zmiennych do scalania oraz ich priorytet.
Wymagania
Brak specjalnych wymagań.
Zmiennie Roli
rpi_dir: nazwa folderu zmiennych do scalania. Domyślnie jest to rpi_vars.
rpi_files: pliki lub foldery zmiennych do scalania. Kolejność elementów w tablicy oznacza ich priorytet. Domyślnie:
- "{{ rpi_role_dirs }}" # folder rpi_vars z ról zawartych w playbooku. Role mogą być umieszczone wewnątrz playbooka (lokalnie) lub w innym miejscu zdefiniowanym w zmiennej konfiguracyjnej roles_path ("shared" w moim przypadku).
- "{{ rpi_playbook_dirs }}" # folder rpi_vars w playbooku
- "{{ rpi_inventory_dirs }}" # folder rpi_vars w folderze inwentarza. Jeśli Twoje inwentarze są umieszczone w ich własnych folderach (mój przypadek).
Ta rola wykonuje dwie główne rzeczy:
- Wszystkie hashe zawarte w rpi_files (yaml, json) są głęboko scalane i zapisane do folderu tymczasowego.
- Wynikowy plik yml ze scalonymi zmiennymi jest ładowany za pomocą zadania include_vars.
Zależności
Ansible 2+
Przykład Playbooka
Główną koncepcją tej roli, obok scalania hashy, jest stworzenie wspólnych zmiennych, które mogą być używane w różnych rolach, z większą dokładnością na poziomie playbooka i inwentarza. Umieść tę rolę na pierwszej pozycji w playbooku, jeśli jej używasz.
Chociaż nie wymyśliłem, jak uzyskać hasło do vaulta z niestandardowego modułu, zaszyfrowane zmienne mogą być importowane do koszyka scalania poprzez plugin lookup, na przykład:
---
secret:
key: "{{ lookup('file', '{{ playbook_dir }}/files/vault.encrypted.key.txt') }}"
Licencja
GPLv2
Informacje o autorze
Evgeniy Kondrashov https://github.com/eugene0707
Load vars files with customizable precedence and deep merge hashes within.
ansible-galaxy install eugene0707.merge_custom_vars