Używamy Ansible Vault do przechowywania haseł, kluczy prywatnych do certyfikatów itp. W naszym repozytorium git w Ansible Playbook. Wszystkie nasze prywatne dane są w formie tekstowej, więc możemy przechowywać je w zmiennych. Są one następnie używane w szablonach lub z content
parametrem modułu kopiowania.
Teraz mamy plik Java KeyStore, który niestety ma format binarny. Jako taki nie może być przechowywany w zmiennej - a przynajmniej nie wiem, jak to zrobić. Jaki byłby najłatwiejszy sposób na prawidłowe zaszyfrowanie naszego pliku, gdy jest on w git, ale dostępny podczas działania ansible-playbook
?
Co próbowałem już bez powodzenia:
- Kodowanie pliku binarnego w base64, przechowywanie zakodowanych danych w zmiennej i używanie modułu szablonu z
{{base64_data | b64decode}}
. Prowadzi do wieluEF BF BD
zrzutów szesnastkowych wynikowego pliku. Trzy bajty kodują znak zastępujący Unicode w UTF-8, więc występuje problem z interpretacją danych binarnych jako tekstu. - Kodowanie pliku binarnego w base64, przechowywanie zakodowanych danych w zmiennej i używanie modułu kopiującego z
content="{{base64_data | b64decode}}"
. Ansible narzeka na: „Zmienna wstawiła nowy parametr do argumentów modułu”. Gdy używasz pojedynczych cudzysłowów zamiast podwójnych cudzysłowów, Ansible skarży się na „ciąg argumentu analizujący błąd” i kopię wszystkich danych binarnych, zrzuconych do terminala ...