moismailzai.protonmail_bridge_headless
Ansible角色:ProtonMail Bridge(无头模式)
安装ProtonMail Bridge(可选择提示2FA),将其注册为无头服务,并配置Postfix使用它。支持RedHat/CentOS、Debian/Ubuntu和Archlinux服务器。
背景
ProtonMail Bridge应用程序(Linux)使您能够将ProtonMail帐户与IMAP和SMTP电子邮件程序(如Thunderbird和Evolution)集成。Bridge对所有有付费订阅的ProtonMail用户开放。
此角色的目的是自动化安装Bridge,以便它可以在没有GUI的无头机器上使用。
具体来说,此角色将:
- 下载最新版本的Bridge
- 安装之前确保软件包已正确签名
- 使用您的用户信息配置Bridge
- 创建一个服务使Bridge在后台运行
- 创建一个锁定的用户来运行该服务
- 配置Postfix以与Bridge一起使用(SASL)
- 在RHEL系统上(或可选择)配置SELinux上下文
需求
要求使用RedHat/CentOS 8、Ubuntu 18或更高版本,或更新的Debian、Archlinux或Manjaro系统。
角色变量
可用变量如下所示,并包含默认值(请参见defaults/main.yml
):
protonmail_username: ""
protonmail_password: ""
protonmail_custom_domain: ""
protonmail_enable_2fa: false
您的ProtonMail凭证和域名。这些用于将您的帐户添加到ProtonMail Bridge,并配置Postfix。__注意__:当protonmail_enable_2fa
设置为true
时,此角色将以交互方式运行,并提示您输入2FA代码。
# configure_selinux: ""
是否配置SELinux。在RHEL系统上默认为true,在其他系统上默认为false。
gpg_key_settings:
type: default
length: default
subkey_type: default
subkey_length: default
expire_date: 0
name: protonmail-bridge-headless service key
email: root@localhost
这些设置用于创建本地GPG密钥。该密钥是ProtonMail Bridge和pass
之间通信所必需的。可以对templates/protonmail-bridge.gpg.j2
文件进行额外更改。注意:默认设置生成一个新的无保护密钥,仅用于Bridge。要添加密钥密码,您需要修改默认值以及templates/protonmail-bridge-headless.service.sh.j2
。
configure_gpg: "true"
configure_pass: "true"
configure_postfix: "true"
configure_service: "true"
configure_user: "true"
可用于跳过此角色中的任务。
protonmail_lib_dir: "/var/lib/protonmail"
配置和服务文件将存储的位置。
protonmail_user: "protonmail"
protonmail_user_flags: "-L"
服务用户的名称和标志。
postfix_hostname: "{{ protonmail_custom_domain }}"
postfix_localhost_address: "127.0.0.1"
您可以在main.cf
中覆盖的设置。
selinux_httpd_can_sendmail: "true"
在配置Postfix时是否为httpd添加selinux策略。
依赖项
需要付费的ProtonMail帐户。
示例用法
首先,安装当前版本的Ansible:
Archlinux:
sudo pacman -Syu ansible
RHEL:
sudo dnf -y install epel-release
sudo dnf repolist
sudo dnf -y install ansible
Debian:
sudo apt update
sudo apt install -y software-properties-common
sudo apt-add-repository -y -u ppa:ansible/ansible
sudo apt install -y ansible
然后,创建一个名为main.yml
的文件,并添加以下内容(将your_username
、your_password
和your_domain
替换为实际值):
- name: "安装并配置ProtonMail Bridge为无头服务"
become: "yes"
hosts: "all"
vars:
protonmail_username: "your_username"
protonmail_password: "your_password"
protonmail_custom_domain: "your_domain"
roles:
- "moismailzai.protonmail_bridge_headless"
然后在同一目录的命令行中运行:
# 从Ansible Galaxy安装此角色
ansible-galaxy install moismailzai.protonmail_bridge_headless
# 确保Ansible可以找到您刚刚下载的角色
ln -s ~/.ansible/roles roles
# 运行您在上一步中创建的playbook
sudo ansible-playbook -c local -i localhost, main.yml
完成后,从命令行发送测试消息给自己:
echo "如果您看到这个,说明Bridge已正确配置。" | mail -s "ProtonMail Bridge测试消息" -r your@email.address recipients@email.address
许可证
MIT
作者信息
此角色由Mo Ismailzai于2021年创建。
Installs the ProtonMail bridge (optionally prompting for 2FA), registers it as a headless service, and configures Postfix to use it.
ansible-galaxy install moismailzai.protonmail_bridge_headless