jenstimmerman.vaultwarden

Vaultwarden

此角色之前被称为 dmaes.bitwardenrsdmaes.vaultwarden

由于 Bitwarden_RS 项目的名称已更改为 Vaultwarden,因此此角色的名称也随之更改(详细信息请参见 #12)。为了强制进行此更改,我们将所有内容从 bitwardenrs 更改为 vaultwarden(包括 Ansible 代码中使用的变量、目录、用户、systemd 服务等)。

在切换时请注意:

  • 停止旧的 bitwarden_rs 服务
  • 为文件和数据库做好备份
  • 更新你的 Ansible 代码以便与新角色兼容
  • vaultwarden_directory 指向旧目录,或者将内容移至新默认目录(/opt/vaultwarden)。如果使用自定义目录,请关注 vaultwarden_datadir
  • 新的 vaultwarden 用户应该在数据库上获得与之前 bitwardenrs 用户相同的权利
    • 对于 postgres:
      • su - postgres
      • psql
      • postgres-# GRANT bitwardenrs TO vaultwarden;
  • 运行 Ansible,这将根据新名称创建所有内容(用户和服务,而不是目录)
  • 清理旧用户、服务(以及可能的(数据)目录)

Build Status

构建、安装和配置 Vaultwarden(不使用 Docker)。

仅在 Rocky linux 9 上测试

需求

  • unarchive模块的需求
  • package模块的需求
  • wget 或 curl
  • jinja => v2.11
  • Systemd(可选)

至少需要 1GB 的 RAM(推荐 2GB),rustc 编译器将在你的主机上编译 bitwarden,这会占用大量内存。内存不足的可能症状包括: 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

角色变量

变量 描述 默认值
vaultwarden_directory 安装 Vaultwarden 的位置 /opt/vaultwarden
vaultwarden_version 要安装的版本 latest
vaultwarden_webvault 安装修补的 webvault true
vaultwarden_webvault_version 要安装的 webvault 版本(如果 vaultwarden 版本设置为 latest,将忽略此项,将安装对应的最新 webvault 版本)这是没有 'v' 前缀的版本 2022.12.0
vaultwarden_build_backend 要编译的数据库类型 根据 vaultwarden_version
vaultwarden_force_recompile 强制重新编译二进制文件(例如,你在同一服务器上切换了后端) false
vaultwarden_config Vaultwarden .env 文件的键值环境变量 { DOMAIN: "https://{{ ansible_fqdn }}/" }
vaultwarden_datadir Vaultwarden 数据目录(不进行配置,仅创建并用于例如密钥) {{ vaultwarden_directory }}/data
vaultwarden_encryption_key 用于加密的 RSA 密钥(内容,不是文件),为空字符串则不复制,Vaultwarden 应该会在不存在时生成一个 ""
vaultwarden_force_encryption_key 如果加密密钥已存在,强制更改它(危险!) false
vaultwarden_systemd 管理 systemd 服务 {{ ansible_service_mgr == 'systemd' }}
vaultwarden_required_service 在启动 vaultwarden 前使 Systemd 等待其他服务 undefined
vaultwarden_proc_limit 指定 systemd 服务文件的 LimitNPROC 128
(*) 从 vaultwarden_version: 1.17.0 开始:默认设置为 sqlite,mysql,postgresql,之前默认设置为 sqlite

示例 Playbook

- hosts: servers
  vars:
    vaultwarden_configure: yes
    vaultwarden_port: "443"
    vaultwarden_build_backend: "sqlite,postgresql"
    vaultwarden_required_service: "postgresql.service"  # 如果 postgresql 启动慢请添加这行,这会使 systemd 等待
    admin_token: !vault |
      $ANSIBLE_VAULT;1.1;AES256
      ...
    vaultwarden_config:
      DOMAIN: "https://example.com/"
      DOMAIN_PATH: "/vaultwarden"  # 结果为 https://example.com/vaultwarden/,需要以 '/' 开头
      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

许可证

MIT

关于项目

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

安装
ansible-galaxy install jenstimmerman.vaultwarden
许可证
mit
下载
1.8k
拥有者