moismailzai.protonmail_bridge_headless
Rol de Ansible: ProtonMail Bridge (sin interfaz gráfica)
Instala el ProtonMail Bridge (opcionalmente pidiendo autenticación de dos factores), lo registra como un servicio sin interfaz gráfica y configura Postfix para usarlo. Soporta servidores RedHat/CentOS, Debian/Ubuntu y Archlinux.
Antecedentes
La aplicación ProtonMail Bridge para Linux te permite integrar tu cuenta de ProtonMail con programas de correo electrónico IMAP y SMTP como Thunderbird y Evolution. Bridge está disponible para todos los usuarios de ProtonMail con una suscripción de pago.
El propósito de este rol es automatizar la instalación del bridge para que pueda usarse en una máquina sin interfaz gráfica.
Específicamente, este rol hará:
- descargar la última versión del bridge
- asegurar que el paquete esté correctamente firmado antes de instalarlo
- configurar el bridge con tu información de usuario
- crear un servicio para mantener el bridge funcionando en segundo plano
- crear un usuario bloqueado para ejecutar el servicio
- configurar Postfix para usar con el bridge (SASL)
- en sistemas RHEL, (opcionalmente) configurar los contextos de SELinux
Requisitos
Requiere RedHat/CentOS 8, Ubuntu 18 o superior, o un sistema Debian, Archlinux o Manjaro actualizado.
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con sus valores predeterminados (ver defaults/main.yml
):
protonmail_username: ""
protonmail_password: ""
protonmail_custom_domain: ""
protonmail_enable_2fa: false
Tus credenciales de ProtonMail y el dominio. Se utilizan para agregar tu cuenta al ProtonMail-bridge y para configurar
Postfix. NOTA: cuando protonmail_enable_2fa
está configurado como true
, este rol se ejecutará de forma interactiva y te pedirá un código de autenticación.
# configure_selinux: ""
Si se debe configurar SELinux. Por defecto, es verdadero en sistemas RHEL y falso de lo contrario.
gpg_key_settings:
type: default
length: default
subkey_type: default
subkey_length: default
expire_date: 0
name: clave del servicio protonmail-bridge-sin-interfaz
email: root@localhost
Estos ajustes se utilizan para crear una clave GPG local. La clave es necesaria para que el ProtonMail bridge y pass
se
comuniquen. Se pueden realizar cambios adicionales en el archivo templates/protonmail-bridge.gpg.j2
. NOTA: los valores
predeterminados generan una nueva clave sin protección que se usará exclusivamente para el bridge. Para agregar una contraseña a la clave, necesitarás modificar los valores predeterminados, así como templates/protonmail-bridge-headless.service.sh.j2
.
configure_gpg: "true"
configure_pass: "true"
configure_postfix: "true"
configure_service: "true"
configure_user: "true"
Se pueden usar para omitir tareas en este rol.
protonmail_lib_dir: "/var/lib/protonmail"
La ubicación donde se almacenarán los archivos de configuración y del servicio.
protonmail_user: "protonmail"
protonmail_user_flags: "-L"
El nombre y las banderas del usuario del servicio.
postfix_hostname: "{{ protonmail_custom_domain }}"
postfix_localhost_address: "127.0.0.1"
Configuraciones que puedes sobrescribir en main.cf
.
selinux_httpd_can_sendmail: "true"
Si se debe agregar políticas de selinux para httpd al configurar Postfix.
Dependencias
Una cuenta de ProtonMail de pago.
Uso de ejemplo
Primero, instala una versión actual de 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
Luego, crea un archivo llamado main.yml
y agrega lo siguiente (reemplazando your_username
, your_password
, y your_domain
con sus valores reales):
- name: "instalar y configurar protonmail-bridge como un servicio sin interfaz gráfica"
become: "yes"
hosts: "all"
vars:
protonmail_username: "tu_nombre_de_usuario"
protonmail_password: "tu_contraseña"
protonmail_custom_domain: "tu_dominio"
roles:
- "moismailzai.protonmail_bridge_headless"
Luego, desde la línea de comandos en el mismo directorio, ejecuta:
# instala este rol desde Ansible Galaxy
ansible-galaxy install moismailzai.protonmail_bridge_headless
# asegura que Ansible puede encontrar el rol que acabas de descargar
ln -s ~/.ansible/roles roles
# ejecuta el playbook que creaste en el paso anterior
sudo ansible-playbook -c local -i localhost, main.yml
Una vez que el proceso esté completo, envíate un mensaje de prueba desde la línea de comandos:
echo "Si estás viendo esto, el bridge se ha configurado correctamente." | mail -s "Mensaje de prueba de ProtonMail-bridge" -r tu@email.direccion destinatario@email.direccion
Licencia
MIT
Información del Autor
Este rol fue creado en 2021 por Mo Ismailzai.
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