При использовании Ansible вам может потребоваться ввести некоторую конфиденциальную или секретную информацию в плейбуки.
Это включает в себя закрытые и открытые ключи SSH, пароли и сертификаты SSL, и это лишь некоторые из них.
Как мы уже знаем, плохая практика сохранять эту конфиденциальную информацию в виде открытого текста по понятным причинам.
Эта информация должна храниться под замком, потому что мы можем только представить, что произойдет, если хакеры или неавторизованные пользователи овладеют ею.
К счастью, Ansible предоставляет нам удобную функцию, известную как Ansible Vault.
Как следует из названия, Ansible Vault помогает защитить важную секретную информацию, как мы уже обсуждали ранее.
Ansible Vault может зашифровывать переменные или даже целые файлы и плейбуки YAML, как мы позже продемонстрируем.
Это очень удобный и несложный инструмент, который требует один и тот же пароль при шифровании и дешифровании файлов.
Давайте теперь погрузимся и рассмотрим различные операции, которые можно выполнять с помощью Ansible Vault.
- Как создать зашифрованный файл в Ansible
- Как просмотреть зашифрованный файл в Ansible
- Как редактировать зашифрованный файл в Ansible
- Как изменить пароль Ansible Vault
- Как зашифровать незашифрованный файл в Ansible
- Как расшифровать зашифрованный файл
- Как зашифровать определенные переменные в Ansible
- Как расшифровать плейбук во время выполнения
Как создать зашифрованный файл в Ansible
Если вы хотите создать зашифрованный файл плейбук, просто используйте команду ansible-vault create и укажите имя файла, как показано далее:
# ansible-vault create filename
Например, для создания зашифрованного файла mysecrets.yml выполните команду.
# ansible-vault create mysecrets.yml

# cat mysecrets.yml

Как просмотреть зашифрованный файл в Ansible
# ansible-vault view mysecrets.yml

Как редактировать зашифрованный файл в Ansible
Чтобы внести изменения в зашифрованный файл, используйте команду редактирования ansible-vault, как показано на рисунке.
# ansible-vault edit mysecrets.yml
Как всегда, введите пароль, а затем продолжите редактирование файла.

Как изменить пароль Ansible Vault
В случае, если вы чувствуете необходимость изменить пароль Ansible vault, вы можете легко сделать это, используя команду rekey ansible-vault, как показано ниже.
# ansible-vault rekey mysecrets.yml

Как зашифровать незашифрованный файл в Ansible
Предположим, что вы хотите зашифровать незашифрованный файл, вы можете сделать это, выполнив команду ansible-vault encrypt, как показано далее:
# ansible-vault encrypt classified.txt


Как расшифровать зашифрованный файл
Чтобы просмотреть содержимое зашифрованного файла, просто расшифруйте файл, используя ansible-vault encrypt , как показано в примере ниже.
# ansible-vault decrypt classified.txt
Как зашифровать определенные переменные в Ansible
Кроме того, Ansible Vault предоставляет вам возможность шифровать определенные переменные.
Это делается с помощью команды ansible-vault encrypt_string, как показано далее:
# ansible-vault encrypt_string
# ansible-vault encrypt_string 'string' --name 'variable_name'

Как расшифровать плейбук во время выполнения
Если у вас есть плейбук и вы хотите расшифровать его во время выполнения, используйте параметр –ask-vault-pass, как показано далее:
# ansible-playbook deploy.yml --ask-vault-pass
Эта команда расшифрует все файлы, которые используются в плейбуке , при условии, что они были зашифрованы с использованием того же пароля.
Запросы пароля могут раздражать время от времени.
Эти подсказки делают автоматизацию несостоятельной, особенно когда автоматизация является ключевой.
Чтобы упростить процесс расшифровки плейбуков во время выполнения, рекомендуется иметь отдельный файл паролей, который содержит пароль Ansible vault.
Этот файл может быть передан во время выполнения, как показано далее
# ansible-playbook deploy.yml --vault-password-file /home/tecmint/vault_pass.txt