Що таке еквівалент конфігурації Ansible `--vault-password-file`?


12

За допомогою ansible-playbook можна було --user=REMOTE_USERб визначити користувача ssh, але можна також визначити ansible_ssh_user: REMOTE_USERабо хост-, або групу_варів.

Питання

Яку змінну потрібно визначити в каталозі group- або host_vars, щоб запобігти --vault-password-fileїї визначенню під час роботи ansible-playbook?

Спроби

  • Коли ansible_vault_password_file: ~/.vault_pass.txtвизначено в конфігурації, розшифровка не вдається:

    ERROR! Decryption failed on /path/to/vault
    
  • У цій документації не знайдено пов'язаних змінних сховищ


До речі, це документально підтверджено (з версії 1.7) тут: docs.ansible.com/ansible/…
Тенсібай

Відповіді:


13

Ось визначення:

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

Це означає, що ви або помістили ansible.cfg або програму playbook:

vault_password_file: ~/.vault_pass.txt

Або у вашій оболонці визначена ця змінна:

export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt

Я залишив текст URL-адреси навмисно, щоб показати людям, як перегляд коду може допомогти там, де документації бракує і де код легко знайти. Але я думаю, гіперпосилання має бути достатньо.
Ірі Клуда

Якщо щось інше не вдається, прочитайте документацію ... а якщо немає документації, прочитайте джерело ... якщо у вас є доступ до нього ... і якщо це зробити, переконайтеся, що ви шукаєте правильну версію .. Єдине, що залишилося тоді - це вміти все це зрозуміти. PS: посилання можуть перестати працювати якийсь день ...
Pierre.Vriens

@JiriKlouda, здається, не працює, хоча це було визначено в group_vars/all/vars. export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtдовелося бігти.
030

Це змінна конфігурація. Він повинен бути у ansible.cfg або еквіваленті або в зошиті.
Jiri Klouda

Також я спеціально перевірив версію 2.2, яку ви запускаєте, і вона там: github.com/ansible/ansible/blob/stable-2.2/lib/ansible/…
Jiri Klouda

2

Ви можете встановити змінну середовища, що ANSIBLE_VAULT_PASSWORD_FILEзберігає шлях до файлу паролів Vault. Таким чином, ви не будете завжди використовувати --vault-password-fileперемикач під час запуску ігрової книги.

Це описано в документації Vault Vault, доступній тут .

Отже, додайте export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtдо нього своє ~/.bash_profileджерело, і ви готові йти.

Якщо вам потрібні різні паролі для сховища для різних груп хостів, вам слід зробити наступне:

Всередині цього підкаталогу створіть два файли з назвою vars та vault. Всередині файлу vars визначте всі необхідні змінні, включаючи будь-які чутливі. Далі скопіюйте всі чутливі змінні у файл vault_ і приставте ці змінні до vault_. Ви повинні налаштувати змінні у файлі vars, щоб вказати на відповідні змінні vault_ та переконатися, що файл vault зашифрований.

Це приклад найкращого підходу для управління конфіденційною інформацією на груповій основі. Більше інформації можна знайти в документації Ansible тут (Вищенаведений текст скопійований звідти).


1
Це не дозволить інший пароль для хостів
Tensibai

Ви посилаєтесь на пароль підключення? Тому що якщо ви це зробите, що це спільного з Ansible Vault?
13димітар

Я мав на увазі пароль сховища, бажаючи мати різний пароль сховища для різних груп має сенс (і це є коренем питання, наскільки я його розумію).
Тенсібай

Я цього не зрозумів. Я відредагував свою відповідь, щоб включити цей сценарій.
13димітар

здається, краще. Btw downvote не моя
Tensibai
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.