Vault (секреты)¶
Vault password¶
Хранится в Vaultwarden: Ansible Vault Password
# Создать файл с паролем (один раз)
echo "пароль_из_vaultwarden" > .vault_pass
chmod 600 .vault_pass
Зашифрованные файлы¶
group_vars/vault.yml¶
Содержит пароли и ключи:
| Переменная | Описание |
|---|---|
vault_xray_admin_password |
Пароль 3x-ui панели |
vault_xray_basic_auth_password |
htpasswd nginx → 3x-ui |
vault_node_exporter_basic_auth_password |
htpasswd node_exporter |
vault_node_exporter_mysql_password |
MySQL exporter |
vault_node_exporter_mysql_htpasswd_password |
htpasswd mysql exporter |
vault_loki_password |
Loki basic auth |
vault_infra_become_password |
sudo для внутренних серверов |
vault_xray_inbound_private_key |
x25519 Reality key |
vault_htpassword_estonia |
htpasswd legacy server |
CA/*.key¶
Все приватные ключи в CA/ зашифрованы vault:
ca.key, ca.p12, selfsigned-ca.key, selfsigned.key, server.key, proxy_69.key, vpn_85.17.9.89.key, xui_all.key
Команды¶
# Просмотреть секреты
ansible-vault view inventory/group_vars/vault.yml --vault-password-file .vault_pass
# Редактировать
ansible-vault edit inventory/group_vars/vault.yml --vault-password-file .vault_pass
# Просмотреть CA ключ
ansible-vault view CA/ca.key --vault-password-file .vault_pass
# Зашифровать новый файл
ansible-vault encrypt <file> --vault-password-file .vault_pass
# Запуск плейбука
ansible-playbook -i inventory/servers.ini playbooks/vpn.yml \
--limit <host> --vault-password-file .vault_pass
FAQ: какой пароль куда¶
| Когда спрашивает | Что вводить | Где взять |
|---|---|---|
--vault-password-file .vault_pass |
Ansible vault password | Vaultwarden |
--ask-pass (SSH password) |
root пароль VPS | Хостинг-провайдер (при покупке сервера) |
--ask-become-pass |
sudo пароль | Тот же root пароль или vault_infra_become_password |
--ask-pass нужен только на новых серверах, где ещё нет наших SSH ключей. После bootstrap-ssh.yml авторизация по ключу, пароль больше не нужен.
Добавление нового секрета¶
ansible-vault edit inventory/group_vars/vault.yml --vault-password-file .vault_pass- Добавить
vault_new_secret: "значение" - Использовать в inventory/playbooks:
{{ vault_new_secret }} - Закоммитить (vault.yml хранится зашифрованным в git)