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_directoryal antiguo directorio, o mueve los archivos al nuevo predeterminado (/opt/vaultwarden). También presta atención avaultwarden_datadirsi 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
 wgetocurljinja => v2.11Systemd(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