jenstimmerman.vaultwarden
Vaultwarden
此角色之前被称为 dmaes.bitwardenrs
和 dmaes.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;
- 对于 postgres:
- 运行 Ansible,这将根据新名称创建所有内容(用户和服务,而不是目录)
- 清理旧用户、服务(以及可能的(数据)目录)
构建、安装和配置 Vaultwarden(不使用 Docker)。
仅在 Rocky linux 9 上测试
需求
至少需要 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
拥有者