Пост

[Решено] Храним пароль Ansible Vault в Vaultwarden

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
Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.