L-P.syncthing
ansible-role-syncthing
Installiere Syncthing.
Anforderungen
Eine Debian-basierte Distribution, Root-Rechte oder become auf dem Remote-Host. Siehe die Syncthing-Dokumentation um herauszufinden, welche Ports geöffnet werden müssen. Die Firewall-Konfiguration wird in dieser Rolle nicht behandelt.
Rollenvariablen
Alle Variablen sind optional.
Die einzige Möglichkeit, Syncthing-Optionen zu setzen, ist die Bearbeitung der Datei config.xml
. Siehe den Abschnitt
Beispiel-Playbook für Details.
# Wenn sich das Repository/der Schlüssel ändert oder du dein eigenes hosten möchtest, ändere diese:
syncthing_apt_key_id:
syncthing_apt_key_url:
syncthing_apt_repository:
# Wenn du den Syncthing-Benutzernamen oder das Home-Verzeichnis ändern möchtest:
syncthing_user:
syncthing_user_home:
# Setze dies auf false, wenn du nicht möchtest, dass die Rolle den Benutzer erstellt und verwaltet.
# Du musst den in syncthing_user angegebenen Benutzer manuell erstellen
# _bevor_ du die Rolle verwendest.
syncthing_manage_user:
# Setze dies auf true, um die Syncthing-Konfiguration vom Remote-Host abzurufen,
# siehe den Abschnitt Beispiel-Playbook.
syncthing_fetch_config:
# Wohin die abgerufenen Dateien geschrieben werden.
syncthing_fetch_dir:
# Inhalt der Konfigurationsdateien
syncthing_config_cert:
syncthing_config_key:
syncthing_config_https_cert:
syncthing_config_https_key:
syncthing_config_config:
Abhängigkeiten
Keine.
Beispiel-Playbook
# Syncthing installieren
- hosts: servers
roles:
- { role: l-p.syncthing }
Die Konfiguration von Syncthing ist dynamisch und wird zur Laufzeit über die GUI bearbeitet.
Du musst die Konfiguration vom Host holen und in den
Variablen syncthing_config_*
speichern, wenn du sie sicher aufbewahren und sicherstellen möchtest, dass es die
Konfiguration ist, die du beim nächsten Ausführen der Rolle tatsächlich auf dem Server hast.
Wenn du die Konfiguration vor dem erneuten Ausführen der Rolle nicht abruft, werden alle neuen Geräte/Ordner Konfigurationen vom Remote-Host gelöscht.
Wenn du die Variablen syncthing_config_*
nicht setzt, wird nichts überschrieben,
aber du verlierst deine Konfiguration, wenn dein Server abstürzt.
# Hole die generierte Konfiguration
- hosts: servers
roles:
- { role: l-p.syncthing, syncthing_fetch_config: true }
Du kannst lookup
verwenden, um die Dateien zu lesen und die Variablen zu setzen:
syncthing_config_cert: "{{lookup('file', 'files/{{ inventory_hostname }}/home/syncthing/.config/syncthing/cert.pem')}}"
syncthing_config_key: "{{lookup('file', 'files/{{ inventory_hostname }}/home/syncthing/.config/syncthing/key.pem')}}"
syncthing_config_https_cert: "{{lookup('file', 'files/{{ inventory_hostname }}/home/syncthing/.config/syncthing/https-cert.pem')}}"
syncthing_config_https_key: "{{lookup('file', 'files/{{ inventory_hostname }}/home/syncthing/.config/syncthing/https-key.pem')}}"
syncthing_config_config: "{{lookup('file', 'files/{{ inventory_hostname }}/home/syncthing/.config/syncthing/config.xml')}}"
Ich empfehle, ansible-vault
zu verwenden, um die Schlüssel zu verschlüsseln. lookup
wird sie dann im Hintergrund entschlüsseln.
Lizenz
MIT