jenstimmerman.vaultwarden

Vaultwarden

Ce rôle était précédemment connu sous le nom de dmaes.bitwardenrs et dmaes.vaultwarden

Depuis que le projet Bitwarden_RS a changé de nom pour Vaultwarden, ce rôle a également changé (voir #12 pour plus d'informations). Pour refléter ce changement, nous avons tout modifié de bitwardenrs à vaultwarden (variables utilisées dans le code ansible, mais aussi répertoires, utilisateur, service systemd, etc.) Lors de la transition :

  • Arrêtez le service bitwarden_rs ancien
  • Faites une sauvegarde des fichiers et de la base de données pour plus de prudence
  • Mettez à jour votre code ansible pour qu'il fonctionne avec le nouveau rôle
  • Soit pointez vaultwarden_directory vers l'ancien répertoire, soit déplacez les fichiers vers le nouveau répertoire par défaut (/opt/vaultwarden). Faites également attention à vaultwarden_datadir si vous utilisez un répertoire personnalisé.
  • Le nouvel utilisateur vaultwarden devrait avoir les mêmes droits sur la base de données que votre ancien utilisateur bitwardenrs
    • pour postgres :
      • su - postgres
      • psql
      • postgres-# GRANT bitwardenrs TO vaultwarden;
  • Exécutez ansible, cela créera tout sous le nouveau nom (utilisateur et service, pas répertoire)
  • Nettoyez l'ancien utilisateur, le service (et éventuellement le (répertoire) de données)

État de la construction

Construit, installe et configure Vaultwarden (sans Docker).

Uniquement testé sur Rocky linux 9

Exigences

  • Exigences pour le module unarchive
  • Exigences pour le module package
  • wget ou curl
  • jinja => v2.11
  • Systemd (optionnel)

Au moins 1 Go de RAM (2 Go recommandés), le compilateur rustc va compiler bitwarden sur votre hôte, ce qui nécessite beaucoup de RAM. Les symptômes d'une mémoire insuffisante peuvent être : Memory cgroup out of memory: Killed process 709453 (rustc) total-vm:2668356kB, anon-rss:955680kB, file-rss:0kB, shmem-rss:0kB, UID:996 pgtables:4516kB oom_score_adj:0

Variables du rôle

Variable Description Valeur par défaut
vaultwarden_directory Où installer Vaultwarden /opt/vaultwarden
vaultwarden_version Quelle version installer latest
vaultwarden_webvault Installer le webvault corrigé true
vaultwarden_webvault_version Version du webvault à installer (Ceci sera ignoré si la version de vaultwarden est réglée sur latest, la version la plus récente du webvault correspondant sera installée) C'est la version sans le préfixe 'v' 2022.12.0
vaultwarden_build_backend Type de base de données à compiler pour spécifique à la version vaultwarden(*)
vaultwarden_force_recompile Forcer la recompilation binaire, (par exemple, si vous avez changé de backend sur le même serveur) false
vaultwarden_config Variables d'environnement clé-valeur pour le fichier .env de Vaultwarden { DOMAIN: "https://{{ ansible_fqdn }}/" }
vaultwarden_datadir Répertoire de données de Vaultwarden (ne configure pas, juste créé et utilisé pour, par ex. les clés) {{ vaultwarden_directory }}/data
vaultwarden_encryption_key Clé RSA à utiliser pour le chiffrement (contenu, pas fichier), chaîne vide pour ne pas copier, Vaultwarden devrait en générer une si elle n'existe pas ""
vaultwarden_force_encryption_key Forcer le changement de la clé de chiffrement si elle existe déjà (DANGEREUX !) false
vaultwarden_systemd Gérer le service systemd {{ ansible_service_mgr == 'systemd' }}
vaultwarden_required_service Faire attendre Systemd pour un autre service avant de démarrer vaultwarden undefined
vaultwarden_proc_limit Spécifier le LimitNPROC pour le fichier de service systemd 128
(*)À partir de vaultwarden_version: 1.17.0 : par défaut sqlite,mysql,postgresql, avant : par défaut sqlite

Exemple de Playbook

- hosts: serveurs
  vars:
    vaultwarden_configure: yes
    vaultwarden_port: "443"
    vaultwarden_build_backend: "sqlite,postgresql"
    vaultwarden_required_service: "postgresql.service"  # ajoutez cela si postgresql commence à ralentir, cela fera attendre systemd
    admin_token: !vault |
      $ANSIBLE_VAULT;1.1;AES256
      ...
    vaultwarden_config:
      DOMAIN: "https://example.com/"
      DOMAIN_PATH: "/vaultwarden"  # conduit à un domaine de https://example.com/vaultwarden/, doit commencer par '/'
      ADMIN_TOKEN: "{{ admin_token }}"
      DATABASE_URL: "postgresql:///vaultwarden?host=/run/postgresql/"
      SIGNUPS_ALLOWED: 'false'
      SIGNUPS_VERIFY: 'true'
      SIGNUPS_DOMAINS_WHITELIST: 'example.com'
      INVITATIONS_ALLOWED: 'true'
      SMTP_HOST: 'mail.example.com'
      SMTP_FROM: '[email protected]'
      SMTP_FROM_NAME: 'vaultwarden'
      ROCKET_ADDRESS: '0.0.0.0'
  roles:
    - jenstimmerman.vaultwarden

Licence

MIT

À propos du projet

Builds, installs and configures Vaultwarden (https://github.com/dani-garcia/vaultwarden) (without Docker)

Installer
ansible-galaxy install jenstimmerman.vaultwarden
Licence
mit
Téléchargements
1.8k
Propriétaire