Jaki jest odpowiednik config Ansible dla `--vault-password-file`?


12

Zgodnie z instrukcją obsługi ansible można użyć --user=REMOTE_USERdo zdefiniowania użytkownika ssh, ale można również zdefiniować ansible_ssh_user: REMOTE_USERw zmiennej host-lub group_vars.

Pytanie

Jaką zmienną należy zdefiniować w katalogu group- lub host_vars, aby zapobiec --vault-password-filezdefiniowaniu jej podczas działania ansible-playbook?

Próbowanie

  • Po ansible_vault_password_file: ~/.vault_pass.txtzdefiniowaniu w konfiguracji deszyfrowanie kończy się niepowodzeniem:

    ERROR! Decryption failed on /path/to/vault
    
  • W tej dokumentacji nie znaleziono powiązanych zmiennych skarbca


Btw jest teraz udokumentowane (od wersji 1.7) tutaj: docs.ansible.com/ansible/…
Tensibai

Odpowiedzi:


13

Oto definicja:

DEFAULT_VAULT_PASSWORD_FILE = get_config(p, DEFAULTS, 'vault_password_file', \
'ANSIBLE_VAULT_PASSWORD_FILE', None, value_type='path')

Oznacza to, że umieścisz w ansible.cfg lub playbook:

vault_password_file: ~/.vault_pass.txt

Lub w twojej powłoce zdefiniowałem tę zmienną:

export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt

Tekst adresu URL pozostawiłem tam celowo, aby pokazać ludziom, w jaki sposób spojrzenie na kod może pomóc w przypadku braku dokumentacji i łatwego do znalezienia kodu. Ale myślę, że hiperłącze powinno wystarczyć.
Jiri Klouda

Jeśli coś innego zawiedzie, przeczytaj dokumentację ... a jeśli nie ma dokumentacji, przeczytaj źródło ... jeśli masz do niej dostęp ... a jeśli tak, upewnij się, że szukasz odpowiedniej wersji .. , jedyne, co pozostało, to móc to wszystko zrozumieć. PS: linki mogą przestać działać pewnego dnia ...
Pierre.Vriens

@JiriKlouda nie wydaje się działać, chociaż zostało zdefiniowane w group_vars/all/vars. export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtmusiał zostać uruchomiony.
030

To jest zmienna config. Musi być w pliku ansible.cfg lub równoważnym lub w podręczniku.
Jiri Klouda

Również specjalnie sprawdziłem wersję 2.2, którą prowadzisz, i jest tam: github.com/ansible/ansible/blob/stable-2.2/lib/ansible/…
Jiri

2

Możesz ustawić zmienną środowiskową ANSIBLE_VAULT_PASSWORD_FILEprzechowującą ścieżkę do pliku haseł skarbca. W ten sposób nie będziesz musiał zawsze używać --vault-password-fileprzełącznika podczas uruchamiania playbooka.

Jest to opisane w dokumentacji Vault Ansible, dostępnej tutaj .

Więc dodaj export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtdo swojego ~/.bash_profileźródła i możesz zacząć.

Jeśli potrzebujesz różnych haseł do przechowalni dla różnych grup hostów, wykonaj następujące czynności:

W tym podkatalogu utwórz dwa pliki o nazwie vars i vault. W pliku vars zdefiniuj wszystkie potrzebne zmienne, w tym wszelkie wrażliwe. Następnie skopiuj wszystkie wrażliwe zmienne do pliku repozytorium i poprzedź te zmienne napisem vault_. Powinieneś dostosować zmienne w pliku vars, aby wskazywały pasujące zmienne vault_ i upewnić się, że plik vault jest zaszyfrowany.

Jest to przykład podejścia opartego na najlepszych praktykach w zakresie zarządzania poufnymi informacjami dla poszczególnych grup. Więcej informacji jest dostępnych w dokumentacji Ansible tutaj (powyższy tekst jest kopiowany stamtąd).


1
To nie pozwoli na inne hasło dla poszczególnych hostów
Tensibai

Masz na myśli hasło połączenia? Bo jeśli tak, to co to ma wspólnego z Ansible Vault?
13dimitar

Miałem na myśli hasło do skarbca, ponieważ chcę mieć inne hasło do skarbca dla różnych grup ma sens (i jest to sedno pytania, o ile je rozumiem).
Tensibai

Nie zrozumiałem tego w ten sposób. Zredagowałem swoją odpowiedź, aby uwzględnić ten scenariusz.
13dimitar

wydaje się lepszy. Btw opinia nie jest moja
Tensibai
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.