ГЕНА 101
Меню ☰ Главная Простой genpass Основной genpass Сложный genpass UUID/GUID Base64 Конвертер Хеширование Определить буквы Рус-En Транслит текста Рус-En Перевод по раскладке En/Рус Шифратор Шифратор 2.0 Смена регистра Проверка Поделиться заметкой / паролем Генератор чисел Подсчёт символов Ansible Vault

О сервисе Ansible Vault

Здесь вы можете зашифровать и дешифровать строку для Ansible Vault. 

Если нашли ошибку напишите через форму обратной связи.

Что такое Ansible Vault

Ansible Vault — это встроенный инструмент в Ansible для передачи и хранения конфендициальных данных, например: логины, пароли, ключи, токены и др. Использует шифрование AES-256, функцию PBKDF2, алгоритм HMAC-SHA256, основывается на Python код.

Возможности инструмента

Интрумент позволяет зашифровать или расшифровать строку со своим паролем (секретом). Полученное значение шифрования можно использовать в переменных, шифровать целиком файлы или строки. И обратно расшифровывать при запуске. Используется шифрование AES-256 моделируя Ansible Vault с генерацией таких же байтов, что Ansible на Python.

Пример шифрования целего файла значения которого было "secret12345", а секрет (пароль) "test12345".

$ANSIBLE_VAULT;1.1;AES256
33666666326536643834613836636564653832373966343763626237663539376366343761396639
6136666431633439316561373465643661643162396331660a663739653063303461336436366662
38386531383764343232363836323335323263336634383635356536343730353236346535326363
3263643234333331360a626639303534323736393733303238666566336139366134373664633261
6465

Пример дешифрования файла:

ansible-vault decrypt /tmp/test.yml

Пример шифрования значения "token12345" для переменной "app_secret" с секретом (паролем) "test12345".

$ANSIBLE_VAULT;1.1;AES256
61393165353730333235616338323264306638386131333561316331383361646265376435366466
6433643732353634633866396564313232373266303739390a626432653238616662313261643239
61333334373131336664386266353639626139656335346166333238363330363464653564656432
3634383832663066630a376565633733373036633966383231646435653130363932356538333034
3437

Пример использования переменной в yml:

Определяем где будет использоваться переменная

env:
  token: "{{ app_secret }}"

Шифруем значение переменной

app_secret: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          66356662623862356131663035656261366537396336666166323665653233643834373765613135
          3630336162306635393433373331663734356538333034310a643166646466376237393931343866
          62316235373332613432626237356130363730316535336164373663346436626336656232633561
          6633306236353233380a663865636464386538376334316437396664323138613939303430336533
          6336

Пример дешифрования руками значения переменной:

ansible localhost \
  -m debug \
  -a "var=app_secret" \
  -e @/tmp/test.yml \
  --ask-vault-pass

Или при запуске playbook:

ansible-playbook playbook.yml --ask-vault-pass

или

ansible-playbook playbook.yml --vault-password-file ~/.vault_pass