moismailzai.protonmail_bridge_headless
Rola Ansible: ProtonMail Bridge (bezgłowa)
Instaluje ProtonMail Bridge (opcjonalnie pytając o 2FA), rejestruje go jako usługę bezgłową oraz konfiguruje Postfix do jego użycia. Wspiera serwery RedHat/CentOS, Debian/Ubuntu i Archlinux.
Tło
Aplikacja ProtonMail Bridge dla systemu Linux umożliwia integrację twojego konta ProtonMail z programami e-mail IMAP i SMTP, takimi jak Thunderbird i Evolution. Bridge jest dostępny dla wszystkich użytkowników ProtonMail z płatną subskrypcją.
Celem tej roli jest automatyzacja instalacji bridge'a, aby mógł być używany na maszynie bez interfejsu graficznego.
Konkretne zadania tej roli to:
- pobranie najnowszej wersji bridge'a
- zapewnienie, że pakiet jest prawidłowo podpisany przed instalacją
- skonfigurowanie bridge'a z danymi użytkownika
- utworzenie usługi, aby bridge działał w tle
- utworzenie zablokowanego użytkownika do uruchamiania usługi
- skonfigurowanie postfixa do współpracy z bridge'em (SASL)
- na systemach RHEL, (lub opcjonalnie) skonfigurowanie kontekstów SELinux
Wymagania
Wymaga systemu RedHat/CentOS 8, Ubuntu 18 lub nowszej, lub aktualnego systemu Debian, Archlinux, czy Manjaro.
Zmienne roli
Dostępne zmienne są wymienione poniżej, wraz z domyślnymi wartościami (zobacz defaults/main.yml
):
protonmail_username: ""
protonmail_password: ""
protonmail_custom_domain: ""
protonmail_enable_2fa: false
Twoje dane logowania do ProtonMail oraz domena. Są one używane do dodania twojego konta do ProtonMail bridge'a oraz do konfiguracji
postfixa. UWAGA: gdy protonmail_enable_2fa
jest ustawione na true
, ta rola będzie uruchamiana interaktywnie i poprosi o kod 2FA.
# configure_selinux: ""
Czy skonfigurować SELinux. Domyślnie jest to ustawione na true w systemach RHEL, a w przeciwnym razie na false.
gpg_key_settings:
type: default
length: default
subkey_type: default
subkey_length: default
expire_date: 0
name: klucz usługi protonmail-bridge-headless
email: root@localhost
Te ustawienia są używane do utworzenia lokalnego klucza GPG. Klucz jest wymagany do komunikacji ProtonMail bridge'a i pass
. Dodatkowe zmiany można wprowadzić w pliku templates/protonmail-bridge.gpg.j2
. UWAGA: domyślne
ustawienia generują nowy niechroniony klucz do wyłącznie użytku z bridge'em. Aby dodać hasło do klucza, będziesz musiał
zmienić wartości domyślne oraz templates/protonmail-bridge-headless.service.sh.j2
.
configure_gpg: "true"
configure_pass: "true"
configure_postfix: "true"
configure_service: "true"
configure_user: "true"
Może być użyty do pominięcia zadań w tej roli.
protonmail_lib_dir: "/var/lib/protonmail"
Lokalizacja, w której będą przechowywane pliki konfiguracyjne i usługi.
protonmail_user: "protonmail"
protonmail_user_flags: "-L"
Nazwa i flagi użytkownika usługi.
postfix_hostname: "{{ protonmail_custom_domain }}"
postfix_localhost_address: "127.0.0.1"
Ustawienia, które możesz nadpisać w main.cf
.
selinux_httpd_can_sendmail: "true"
Czy dodać polityki selinux dla httpd, podczas konfigurowania postfixa.
Zależności
Płatne konto ProtonMail.
Przykład użycia
Najpierw zainstaluj aktualną wersję 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
Następnie utwórz plik o nazwie main.yml
i dodaj poniższe (zastępując twoja_nazwa_użytkownika
, twoje_hasło
oraz twoja_domena
rzeczywistymi wartościami):
- name: "zainstaluj i skonfiguruj protonmail-bridge jako usługę bezgłową"
become: "tak"
hosts: "wszystkie"
vars:
protonmail_username: "twoja_nazwa_użytkownika"
protonmail_password: "twoje_hasło"
protonmail_custom_domain: "twoja_domena"
roles:
- "moismailzai.protonmail_bridge_headless"
Następnie z linii poleceń w tym samym katalogu uruchom:
# instaluje tę rolę z Ansible Galaxy
ansible-galaxy install moismailzai.protonmail_bridge_headless
# upewnij się, że Ansible może znaleźć rolę, którą właśnie pobrałeś
ln -s ~/.ansible/roles roles
# uruchom plik playbook, który stworzyłeś w poprzednim kroku
sudo ansible-playbook -c local -i localhost, main.yml
Po zakończeniu procesu, wyślij do siebie wiadomość testową z linii poleceń:
echo "Jeśli to widzisz, bridge został poprawnie skonfigurowany." | mail -s "Wiadomość testowa ProtonMail-bridge" -r twoj@email.adres odbiorca@email.adres
Licencja
MIT
Informacje o autorze
Ta rola została stworzona w 2021 roku przez 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