HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Ansible Vault - механизм шифрования переменных и файлов, который помогает спрятать секретные данные, такие как пароли или ключи к разнообразным сервисам. У Ansible Vault множество вариантов использования, о которых можно подробно прочитать в документации. Здесь мы остановимся на одном, наиболее простом и универсальном. Пример этой схемы можно подсмотреть<a>тут</a></p>
1 <p>Ansible Vault - механизм шифрования переменных и файлов, который помогает спрятать секретные данные, такие как пароли или ключи к разнообразным сервисам. У Ansible Vault множество вариантов использования, о которых можно подробно прочитать в документации. Здесь мы остановимся на одном, наиболее простом и универсальном. Пример этой схемы можно подсмотреть<a>тут</a></p>
2 <h2>Подготовка</h2>
2 <h2>Подготовка</h2>
3 <ol><li>Создайте директорию<em>group_vars/all</em>в той директории, откуда вы запускаете ansible (где хранится inventory файл). Yaml-файлы внутри этой директории автоматически подгружаются Ansible во время выполнения плейбуков</li>
3 <ol><li>Создайте директорию<em>group_vars/all</em>в той директории, откуда вы запускаете ansible (где хранится inventory файл). Yaml-файлы внутри этой директории автоматически подгружаются Ansible во время выполнения плейбуков</li>
4 <li>Создайте файл<em>group_vars/all/vault.yml</em>. В этом файле мы будем хранить зашифрованные переменные</li>
4 <li>Создайте файл<em>group_vars/all/vault.yml</em>. В этом файле мы будем хранить зашифрованные переменные</li>
5 <li>Добавьте туда переменную с именем my_secret_key и значением lala</li>
5 <li>Добавьте туда переменную с именем my_secret_key и значением lala</li>
6 </ol><p>Теперь перейдем непосредственно к шифрованию. Для этого выполните следующую команду:</p>
6 </ol><p>Теперь перейдем непосредственно к шифрованию. Для этого выполните следующую команду:</p>
7 <p>Перед шифрованием Ansible запросит пароль, который нужно запомнить или где-то записать, например, в менеджере паролей наподобие<a>keepass</a>. После установки пароля файл окажется зашифрованным. Вот как теперь выглядит его содержимое:</p>
7 <p>Перед шифрованием Ansible запросит пароль, который нужно запомнить или где-то записать, например, в менеджере паролей наподобие<a>keepass</a>. После установки пароля файл окажется зашифрованным. Вот как теперь выглядит его содержимое:</p>
8 <p>Однажды зашифровав файл, его больше никогда не нужно расшифровывать самостоятельно. Ключевая фишка безопасности здесь в том, что файл всегда остается зашифрован. Расшифровкой занимается сам Ansible и только тогда, когда это нужно. Например во время запуска плейбука:</p>
8 <p>Однажды зашифровав файл, его больше никогда не нужно расшифровывать самостоятельно. Ключевая фишка безопасности здесь в том, что файл всегда остается зашифрован. Расшифровкой занимается сам Ansible и только тогда, когда это нужно. Например во время запуска плейбука:</p>
9 <p>Для этого нужно указать опцию --ask-vault-pass. Затем Ansible запросит пароль, которым выполнялось шифрование и расшифрует данные файла. Сам файл останется зашифрованным.</p>
9 <p>Для этого нужно указать опцию --ask-vault-pass. Затем Ansible запросит пароль, которым выполнялось шифрование и расшифрует данные файла. Сам файл останется зашифрованным.</p>
10 <p>Постоянное копирование пароля может утомить, поэтому существует еще один способ указания пароля. Достаточно положить его в какой-то файл, который исключен из контроля версий и указать к нему путь:</p>
10 <p>Постоянное копирование пароля может утомить, поэтому существует еще один способ указания пароля. Достаточно положить его в какой-то файл, который исключен из контроля версий и указать к нему путь:</p>
11 <p>Для изменения зашифрованного файла нужно набрать команду:</p>
11 <p>Для изменения зашифрованного файла нужно набрать команду:</p>
12 <p>Она откроет редактор по умолчанию (значение переменной окружения $EDITOR в системе), в котором отобразится расшифрованное содержимое файла. Файл, при этом, останется зашифрованным. Все это защищает от случайного попадания чувствительных данных в репозиторий в открытом виде.</p>
12 <p>Она откроет редактор по умолчанию (значение переменной окружения $EDITOR в системе), в котором отобразится расшифрованное содержимое файла. Файл, при этом, останется зашифрованным. Все это защищает от случайного попадания чувствительных данных в репозиторий в открытом виде.</p>