jenstimmerman.vaultwarden
Vaultwarden
Este rol fue conocido previamente como dmaes.bitwardenrs
y dmaes.vaultwarden
Dado que el proyecto Bitwarden_RS cambió de nombre a Vaultwarden, también lo hizo este rol (ver #12 para más información).
Para hacer este cambio forzoso, cambiamos todo de bitwardenrs
a vaultwarden
(variables utilizadas en el código de Ansible, pero también directorios, usuario, servicio systemd, etc.)
Al hacer el cambio:
- Detén el antiguo servicio
bitwarden_rs
- Haz una copia de seguridad de ambos archivos y de la base de datos por si acaso
- Actualiza tu código de Ansible para trabajar con el nuevo rol
- O apunta
vaultwarden_directory
al antiguo directorio, o mueve los archivos al nuevo predeterminado (/opt/vaultwarden
). También presta atención avaultwarden_datadir
si estás utilizando uno personalizado. - El nuevo usuario de vaultwarden debe tener los mismos derechos en la base de datos que tu antiguo usuario de bitwardenrs
- para postgres:
- su - postgres
- psql
postgres-# GRANT bitwardenrs TO vaultwarden;
- para postgres:
- Ejecuta Ansible, esto creará todo bajo el nuevo nombre (usuario y servicio, no directorio)
- Limpia el antiguo usuario, servicio (y posiblemente el directorio de (datos))
Construye, instala y configura Vaultwarden (sin Docker).
Solo probado en Rocky Linux 9
Requisitos
- Requisitos para el módulo unarchive
- Requisitos para el módulo package
wget
ocurl
jinja => v2.11
Systemd
(opcional)
Al menos 1 GB de RAM (se recomienda 2GB), el compilador rustc
compilará bitwarden en tu host, lo que consume mucha RAM. Los posibles síntomas de no tener suficiente RAM son:
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 del Rol
Variable | Descripción | Valor predeterminado |
---|---|---|
vaultwarden_directory |
Dónde instalar Vaultwarden | /opt/vaultwarden |
vaultwarden_version |
Qué versión instalar | latest |
vaultwarden_webvault |
Instalar el webvault parcheado | true |
vaultwarden_webvault_version |
Versión del webvault a instalar (Esto se ignorará si la versión de vaultwarden se establece en latest, se instalará la última versión correspondiente) Esta es la versión sin el prefijo 'v' | 2022.12.0 |
vaultwarden_build_backend |
Tipo de base de datos para compilar | específico de la versión de vaultwarden(*) |
vaultwarden_force_recompile |
Forzar recompilación del binario (por ejemplo, si cambiaste de backend en el mismo servidor) | false |
vaultwarden_config |
Variables de entorno clave-valor para el archivo .env de Vaultwarden |
{ DOMAIN: "https://{{ ansible_fqdn }}/" } |
vaultwarden_datadir |
Directorio de datos de Vaultwarden (no se configura, solo se crea y se usa para e.g. claves) | {{ vaultwarden_directory }}/data |
vaultwarden_encryption_key |
Clave RSA para usar en la encriptación (contenido, no archivo), cadena vacía para no copiar, Vaultwarden debería generar una si no existe | "" |
vaultwarden_force_encryption_key |
Forzar el cambio de la clave de encriptación si ya existe (¡PELIGROSO!) | false |
vaultwarden_systemd |
Administrar el servicio systemd | {{ ansible_service_mgr == 'systemd' }} |
vaultwarden_required_service |
Hacer que Systemd espere a otro servicio antes de iniciar vaultwarden | indefinido |
vaultwarden_proc_limit |
Especificar el LimitNPROC para el archivo de servicio systemd | 128 |
(*)A partir de vaultwarden_version: 1.17.0 : predeterminado a sqlite,mysql,postgresql , antes: predeterminado a sqlite |
Ejemplo de Playbook
- hosts: servers
vars:
vaultwarden_configure: yes
vaultwarden_port: "443"
vaultwarden_build_backend: "sqlite,postgresql"
vaultwarden_required_service: "postgresql.service" # añade esto si postgresql empieza a ralentizar, esto hará que systemd espere
admin_token: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
vaultwarden_config:
DOMAIN: "https://example.com/"
DOMAIN_PATH: "/vaultwarden" # resulta en un dominio de https://example.com/vaultwarden/, necesita comenzar con un '/'
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
Licencia
MIT
Builds, installs and configures Vaultwarden (https://github.com/dani-garcia/vaultwarden) (without Docker)
ansible-galaxy install jenstimmerman.vaultwarden