Утилита ansible-vault
Описание
ansible-vault - утилита шифрования/дешифрования любых структурированных файлов данных Ansible Core. Это могут быть переменные group_vars/ или host_vars/ для inventory, переменные, загружаемые с помощью include_vars или vars_files, или файлы переменных, передаваемые в командной строке ansible-playbook с помощью -e @file.yml или -e @file.json. Переменные роли и значения по умолчанию также включены.
Поскольку задачи, обработчики и другие объекты Ansible Core являются данными, они также могут быть зашифрованы с помощью ansible-vault.
Синтаксис утилиты:
ansible-vault <options> <action>
Где:
<options> - опции;
<action> - действие.
Настройка утилиты производится с помощью конфигурационного файла /etc/ansible/ansible.cfg, используемого при наличии, и файла конфигурации пользователя ~/.ansible.cfg, переопределяющего конфигурацию по умолчанию, если она присутствует, описанных в разделе «Конфигурационные файлы ansible.cfg».
Опции
Опции утилиты представлены в таблице ниже.
Опции ansible-vault
Опция |
Описание |
--version
|
Показать номер версии утилиты, расположение конфигурационного файла, настроенный путь поиска модулей, расположение модуля, расположение исполняемого файла и выйти |
-h, --help
|
Показать справочное сообщение и выйти |
-v, --verbose
|
Вывести больше отладочных сообщений. Добавление нескольких -v увеличивает уровень подробности, встроенные плагины в настоящее время оценивают до -vvvvvv. Разумный уровень для начала - -vvv, отладка соединения может потребовать -vvvv. Этот аргумент может быть указан несколько раз |
Действия
Действия утилиты представлены в таблице ниже.
Действия ansible-vault
Действие |
Опции действия |
create - создать и открыть файл в редакторе, который будет зашифрован с использованием предоставленного секрета хранилища при закрытии
|
--encrypt-vault-id <encrypt_vault_id> - указать идентификатор хранилища, используемый для шифрования (обязателен, если предоставлено более одного идентификатора хранилища);
--skip-tty-check - позволить открыть редактор, когда нет подключенного TTY;
--vault-id - указать идентификатор хранилища для использования. Этот аргумент может быть указан несколько раз;
--vault-password-file, --vault-pass-file - указать файл пароля хранилища;
-J, --ask-vault-password, --ask-vault-pass - запросить пароль хранилища
|
decrypt - расшифровать предоставленный файл с использованием указанного секрета хранилища
|
--output <output_file> - указать имя выходного файла для шифрования или расшифровки; используйте - для стандартного вывода;
--vault-id - указать идентификатор хранилища для использования. Этот аргумент может быть указан несколько раз;
--vault-password-file, --vault-pass-file - указать файл пароля хранилища;
-J, --ask-vault-password, --ask-vault-pass - запросить пароль хранилища
|
edit - открыть и расшифровать существующий зашифрованный файл в редакторе, который будет зашифрован снова при закрытии
|
--encrypt-vault-id <encrypt_vault_id> - указать идентификатор хранилища, используемый для шифрования (обязателен, если предоставлено более одного идентификатора хранилища);
--vault-id - указать идентификатор хранилища для использования. Этот аргумент может быть указан несколько раз;
--vault-password-file, --vault-pass-file - указать файл пароля хранилища;
-J, --ask-vault-password, --ask-vault-pass - запросить пароль хранилища
|
view - открыть, расшифровать и просмотреть существующий зашифрованный файл с использованием постраничного просмотра и предоставленного секрета хранилища
|
--vault-id - указать идентификатор хранилища для использования. Этот аргумент может быть указан несколько раз;
--vault-password-file, --vault-pass-file - указать файл пароля хранилища;
-J, --ask-vault-password, --ask-vault-pass - запросить пароль хранилища
|
encrypt - зашифровать файл с использованием предоставленного секрета хранилища
|
--encrypt-vault-id <encrypt_vault_id> - указать идентификатор хранилища, используемый для шифрования (обязателен, если предоставлено более одного идентификатора хранилища);
--output <output_file> - указать имя выходного файла для шифрования или расшифровки; используйте - для вывода в stdout;
--vault-id - указать идентификатор хранилища для использования. Этот аргумент может быть указан несколько раз;
--vault-password-file, --vault-pass-file - указать файл пароля хранилища;
-J, --ask-vault-password, --ask-vault-pass - запросить пароль хранилища
|
encrypt_string - зашифровать строку с использованием предоставленного секрета хранилища
|
--encrypt-vault-id <encrypt_vault_id> - указать идентификатор хранилища, используемого для шифрования (обязателен, если предоставлено более одного идентификатора хранилища);
--output <output_file> - указать имя выходного файла для шифрования или расшифровки; используйте - для вывода в stdout;
--show-input - не скрывать ввод при запросе строки для шифрования;
--stdin-name <encrypt_string_stdin_name> - указать имя переменной для stdin;
--vault-id - указать идентификатор хранилища для использования. Этот аргумент может быть указан несколько раз;
--vault-password-file, --vault-pass-file - указать файл пароля хранилища;
-j, --ask-vault-password, --ask-vault-pass - запросить пароль хранилища;
-n, --name - указать имя переменной. Этот аргумент может быть указан несколько раз;
-p, --prompt - запросить строку для шифрования
|
rekey - зашифровать файл с новым секретом, требуется предыдущий секрет
|
--encrypt-vault-id <encrypt_vault_id> - указать идентификатор хранилища, используемого для шифрования (обязателен, если предоставлено более одного идентификатора хранилища);
--new-vault-id <new_vault_id> - указать новый идентификатор хранилища для повторного шифрования;
--new-vault-password-file <new_vault_password_file> - указать новый файл пароля хранилища для повторного шифрования;
--vault-id - указать идентификатор хранилища для использования. Этот аргумент может быть указан несколько раз;
--vault-password-file, --vault-pass-file - указать файл пароля хранилища;
-j, --ask-vault-password, --ask-vault-pass - запросить пароль хранилища
|
Переменные окружения
Переменная окружения, влияющая на работу утилиты - ANSIBLE_CONFIG - переопределить конфигурационный файл по умолчанию.
Другие варианты доступны в качестве параметров ansible.cfg (подробнее - в разделе «Конфигурационные файлы ansible.cfg»).
Примеры использования
Создайте зашифрованный файл secrets.yml:
ansible-vault create secrets.yml
В результате выполнения данной команды откроется текстовый редактор (например, nano, подробнее о нем - в разделе «Утилита nano»). Введите необходимые конфиденциальные данные, которые необходимо зашифровать, сохраните файл и выйдите из редактора. Утилита зашифрует содержимое файла с использованием пароля, заданного при первом ее использовании.
Прочитайте или измените ранее зашифрованный файл secrets.yml:
ansible-vault edit secrets.yml
Команда запросит пароль для расшифровки файла и откроет его в текстовом редакторе.
Дополнительная информация
Дополнительную информацию можно получить, выполнив команду: