Здесь вы можете зашифровать и дешифровать строку для 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