jenstimmerman.vaultwarden
Vaultwarden
Diese Rolle war vorher als dmaes.bitwardenrs
und dmaes.vaultwarden
bekannt
Seit das Bitwarden_RS-Projekt seinen Namen in Vaultwarden geändert hat, wurde auch diese Rolle umbenannt (siehe #12 für weitere Informationen). Um diese Änderung durchzuführen, haben wir alles von bitwardenrs
in vaultwarden
umbenannt (Variablen im Ansible-Code sowie Verzeichnisse, Benutzer, Systemd-Dienste usw.).
Beim Umstieg:
- Stoppen Sie den alten
bitwarden_rs
-Dienst - Machen Sie ein Backup von beiden Dateien und der Datenbank zur Sicherheit
- Aktualisieren Sie Ihren Ansible-Code, um mit der neuen Rolle zu arbeiten
- Entweder das
vaultwarden_directory
auf das alte Verzeichnis zeigen oder die Daten in das neue Standardverzeichnis (/opt/vaultwarden
) verschieben. Achten Sie auch aufvaultwarden_datadir
, wenn Sie ein benutzerdefiniertes verwenden. - Der neue Vaultwarden-Benutzer sollte die gleichen Berechtigungen für die Datenbank erhalten wie Ihr vorheriger Bitwardenrs-Benutzer
- für postgres:
- su - postgres
- psql
postgres-# GRANT bitwardenrs TO vaultwarden;
- für postgres:
- Führen Sie Ansible aus, dies erstellt alles unter dem neuen Namen (Benutzer und Dienst, nicht Verzeichnis)
- Alte Benutzer und Dienste (und möglicherweise (Daten)verzeichnis) aufräumen
Baut, installiert und konfiguriert Vaultwarden (ohne Docker).
Nur getestet auf Rocky Linux 9
Anforderungen
- Anforderungen für das unarchive-Modul
- Anforderungen für das package-Modul
- wget oder curl
- jinja => v2.11
- Systemd (optional)
Mindestens 1 GB RAM (2 GB empfohlen), der rustc-Compiler wird Bitwarden auf Ihrem Host kompilieren, was viel RAM benötigt. Mögliche Symptome von unzureichendem RAM sind:
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
Rollenvariablen
Variable | Beschreibung | Standardwert |
---|---|---|
vaultwarden_directory |
Wo Vaultwarden installiert werden soll | /opt/vaultwarden |
vaultwarden_version |
Welche Version installiert werden soll | latest |
vaultwarden_webvault |
Installieren Sie das gepatchte Webvault | true |
vaultwarden_webvault_version |
Version des zu installierenden Webvaults (dies wird ignoriert, wenn die Vaultwarden-Version auf neuesten Stand eingestellt ist, die entsprechende neueste Webvault-Version wird installiert) Dies ist die Version ohne das 'v'-Präfix | 2022.12.0 |
vaultwarden_build_backend |
Den Datenbanktyp, für den kompiliert werden soll | vaultwarden_version-spezifisch(*) |
vaultwarden_force_recompile |
Erzwingen Sie die Neukompilierung der Binärdatei (z. B. wenn Sie auf demselben Server den Backend gewechselt haben) | false |
vaultwarden_config |
Schlüssel-Wert-Umgebungsvariablen für die Vaultwarden .env -Datei |
{ DOMAIN: "https://{{ ansible_fqdn }}/" } |
vaultwarden_datadir |
Vaultwarden-Datenverzeichnis (wird nicht konfiguriert, nur erstellt und z.B. für Schlüssel verwendet) | {{ vaultwarden_directory }}/data |
vaultwarden_encryption_key |
RSA-Schlüssel zur Verwendung für die Verschlüsselung (Inhalt, nicht Datei), leerer String, um nicht zu kopieren, Vaultwarden sollte einen generieren, wenn er nicht vorhanden ist | "" |
vaultwarden_force_encryption_key |
Erzwingen Sie die Änderung des Verschlüsselungskeys, wenn dieser bereits existiert (GEFÄHRLICH!) | false |
vaultwarden_systemd |
Verwalten Sie den Systemd-Dienst | {{ ansible_service_mgr == 'systemd' }} |
vaultwarden_required_service |
Lassen Sie Systemd auf einen anderen Dienst warten, bevor Vaultwarden gestartet wird | undefined |
vaultwarden_proc_limit |
Geben Sie das LimitNPROC für die Systemd-Dienstdatei an | 128 |
(*) Ab vaultwarden_version: 1.17.0 : Standardmäßig auf sqlite,mysql,postgresql , davor: Standardmäßig auf sqlite |
Beispiel-Playbook
- hosts: servers
vars:
vaultwarden_configure: ja
vaultwarden_port: "443"
vaultwarden_build_backend: "sqlite,postgresql"
vaultwarden_required_service: "postgresql.service" # fügen Sie dies hinzu, wenn sich der Start von PostgreSQL verlangsamt, dies lässt Systemd warten
admin_token: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
vaultwarden_config:
DOMAIN: "https://example.com/"
DOMAIN_PATH: "/vaultwarden" # ergibt eine Domain von https://example.com/vaultwarden/, muss mit einem '/' beginnen
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
Lizenz
MIT
Builds, installs and configures Vaultwarden (https://github.com/dani-garcia/vaultwarden) (without Docker)
ansible-galaxy install jenstimmerman.vaultwarden