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;
- pour postgres :
- 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)
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
Builds, installs and configures Vaultwarden (https://github.com/dani-garcia/vaultwarden) (without Docker)
ansible-galaxy install jenstimmerman.vaultwarden