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:

  1. Wszystkie hashe zawarte w rpi_files (yaml, json) są głęboko scalane i zapisane do folderu tymczasowego.
  2. 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

O projekcie

Load vars files with customizable precedence and deep merge hashes within.

Zainstaluj
ansible-galaxy install eugene0707.merge_custom_vars
Licencja
Unknown
Pobrania
120
Właściciel