[Решено] Храним пароль Ansible Vault в Vaultwarden
Ansible Vault - механизм шифрования переменных и файлов, который помогает спрятать секретные данные, такие как пароли или ключи к разнообразным сервисам. Vaultwarden — это менеджер паролей с открытым исходным кодом, который позволяет безопасно хранить и управлять вашими паролями, логинами и другими конфиденциальными данными.
- Установка Vaultwarden и PostgreSQL в Debian была рассмотрена в одной из предыдущих статей.
- Использование Ansible-vault так же было рассмотрена в одной из предыдущих статей.
- Список статей из категории Vaultwarden.
Подготовка
Устанавливаем Ansible
1
$ sudo apt install ansible
Устанавливаем коллекцию community.general
для Ansible
1
$ ansible-galaxy collection install community.general
Скачиваем консольный клиент bitwarden
и распаковываем его
1
2
$ wget https://github.com/bitwarden/clients/releases/download/cli-v2024.10.0/bw-linux-2024.10.0.zip
$ unzip bw-linux-2024.10.0.zip
Устанавливаем консольный клиент bitwarden
1
2
$ sudo install bw /usr/local/bin/
$ which bw
Задаем адрес нашел сервера Vaultwarden
1
$ bw config server https://vault.itdraft.ru
Пробуем авторизоваться
1
$ bw login [email protected]
После авторизации, консоль выдаст нам переменную среды. Выполним команду, что бы постоянно не использовать логин,пароль
1
$ export BW_SESSION="6tF1rCk6w0yDiMhpDFHkoLvW/kQHJGr0Y1d3BdIGrcvO4pGzZuIbnjauDXaAhoIqrUUrnI+MxxNZNlLMwXCFOA=="
Если мы забыли запустить (или потерять) эти команды, можно получить их с помощью команды bw unlock
Cинхронизируем хранилище
1
$ bw sync
Не забываем время от времени запускать bw sync
, чтобы подтянулась свежая копия хранилища.
Реализация
Сделаем скрипт ansible-vault-pass.sh
, который выполняет разблокировку хранилища Vaultwarden, а затем ищет и возвращает пароль Ansible Vault
1
sudo nano ansible-vault-pass.sh
Содержимое скрипта
1
2
3
4
5
#!/bin/bash
_BW_VAULT_ID="ansible-vault"
_bw_session="$(bw unlock --raw)"
echo "$(bw get password ${_BW_VAULT_ID} --session ${_bw_session} --raw)"
- запись
ansible-vault
должна присутствовать в хранилище Vaultwarden
Теперь при запуске ansible-playbook
с параметром --vault-password-file
будет запрашивать пароль Ansible Vault из Vaultwarden
1
ansible-playbook myplaybook.yml --vault-password-file=~./ansible-vault-pass.sh
Параметру --vault-password-file
можно задать значение по умолчанию в основной конфигурации Ansible (обычно ~/.ansible.cfg
)
1
sudo nano ~/.ansible.cfg
Содержимое конфигурации
1
2
[defaults]
vault_password_file=/path/to/ansible-vault-pass.sh