Перейти к содержанию

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 авторизация по ключу, пароль больше не нужен.

Добавление нового секрета

  1. ansible-vault edit inventory/group_vars/vault.yml --vault-password-file .vault_pass
  2. Добавить vault_new_secret: "значение"
  3. Использовать в inventory/playbooks: {{ vault_new_secret }}
  4. Закоммитить (vault.yml хранится зашифрованным в git)