triplepoint.znc
Ansible ZNC 
Installieren und konfigurieren Sie den ZNC IRC Bouncer.
Beinhaltet das ClientBuffer-Modul, um mehrere separate Client-Puffer pro Konto zu unterstützen.
Da dieses Rollenspiel von einem Docker-Container abhängt, ist es nicht ganz einfach, wie man die znc
-Binärdatei für Dienstprogramme wie --makepass
aufruft. Hier ist zur Referenz, wie man den Passwortbefehl von einem Rechner ausführt, der Docker eingerichtet hat:
docker run -it --rm triplepoint/docker-znc:latest znc --makepass
Anforderungen
Es sind keine festen Abhängigkeitsrollen erforderlich, aber eine Docker-Umgebung muss auf dem Host ausgeführt werden, damit diese Rolle bereitgestellt werden kann. Die Rolle geerlingguy.docker
erfüllt dieses Kriterium.
Rollenvariablen
Für weitere Details zur Konfiguration von ZNC siehe die ZNC-Konfigurationsdokumentation.
Für mehr Informationen zu ZNCs globalen, Benutzer- und Netzwerkmodulen siehe die ZNC-Moduldokumentation.
ZNC-Installation
znc_exec_user: znc-admin # Der Benutzer, unter dem ZNC ausgeführt wird
znc_exec_user_and_group_id: 1066 # Die UID und GID des Ausführungsbenutzers
znc_docker_image_version: 0.1.6 # Die getaggte Version des `triplepoint/docker-znc` Docker-Images
znc_install_version: 1.6.5 # Die Version von ZNC, die mit dem Docker-Image installiert ist. Sollte synchron gehalten werden.
znc_config_root: /etc/znc # Der Root-Standort der ZNC-Konfigurationsdateistruktur
ZNC Globale Konfiguration
znc_max_buffer_size: 100000 # Die maximale Größe eines Benutzerpuffers. Dies wird als Standard verwendet, wenn kein benutzerspezifischer Wert angegeben wird.
znc_port: 6666 # Auf welchem Port wird ZNC hören?
znc_ipv4: true # Soll ZNC auf IPv4-Verbindungen hören?
znc_ipv6: false # IPv6?
znc_ssl: true # Soll ZNC Verbindungen über SSL erwarten?
znc_ssl_certfile: "{{ znc_config_root }}/znc.pem" # Wenn SSL aktiviert ist, wo befindet sich die PEM-Datei? Diese wird durch den Ansible-Bau generiert.
znc_global_modules: # Welche globalen Module sollten für alle Benutzer und Netzwerke installiert werden? Diese sind separat von den unten definierten Benutzer- und Netzwerkmodulen.
- webadmin
ZNC Benutzerdefinitionskonfiguration
znc_users: # Es ist ratsam, einen separaten Administratorbenutzer ohne Netzwerke zu haben, um den ZNC-Server direkt zu verwalten. Hier haben wir nur einen Benutzer, der Übersichtlichkeit halber.
- name: admin
password: # Diese können mit `znc --makepass` generiert werden. Dies hier ist für das Passwort "admin".
method: "sha256"
hash: "481fe84cc70161b20eb0c487d212e8b94cabb45cb9f08b6c51cc2c0131c1b42e"
salt: "J*;s-Z!gjJ:oJ.kThRZv"
nick: adminuser
realname: Admin ZNC Benutzer
admin: true # Es sollte mindestens einen Administratorbenutzer geben, aber Ihr typischer Benutzer sollte wahrscheinlich kein Administrator sein.
allow: "*" # Optional
altnick: adminuser_ # Optional
autoclearchanbuffer: true # Optional, sollte false sein, wenn der Clientpuffer verwendet wird
autoclearquerybuffer: true # Optional, sollte false sein, wenn der Clientpuffer verwendet wird
buffer: 100000 # Optional
chanmodes: "+stn" # Optional
ident: adminuser_ # Optional
multiclients: false # Optional
networks: # Optional, obwohl der Benutzer ohne Netzwerke keine externen IRC-Server verbinden kann.
freenode:
server: chat.freenode.net
port: 6697
ssl: true
password: "" # Optional, dies ist das Passwort, mit dem der Benutzer sich beim Remote-Chat-Server anmelden wird.
channels: # Optionale Liste, der Benutzer wird sich mit jedem dieser Kanäle auf dem Remote-Chat-Server verbinden.
- "#freenode" # Diese müssen für YAML kommentiert werden, wenn es einen Hash im Kanalnamen gibt.
modules: # Optionale Liste, dies sind die netzwerkspezifischen Module.
- route_replies
- keepnick
- clientbuffer # Stellen Sie sicher, dass `autoclearchanbuffer` und `autoclearquerybuffer` deaktiviert sind, wenn dies für diesen Benutzer aktiviert ist.
modules: # Dies sind die benutzerspezifischen Module.
- chansaver
- controlpanel
- webadmin
Abhängigkeiten
Keine.
Beispiel-Playbook
- hosts: egal
roles:
- triplepoint.znc
Rollen-Testen
Diese Rolle wird mit molecule
getestet, wobei pipenv
zur Handhabung von Abhängigkeiten und der Python-Testumgebung verwendet wird.
Einrichtung Ihrer Ausführungsumgebung
pip install pipenv
Hinweis: pip-tools
scheint nicht gut mit pipenv
zu funktionieren. Sie sollten pip-tools
nicht installiert haben, damit dies korrekt funktioniert.
Sobald Sie pipenv
installiert haben, können Sie die Ausführungs-virtuelle Umgebung mit Folgendem erstellen:
pipenv install --ignore-pipfile
Dies wird eine virtuelle Umgebung mit allen installierten Python-Abhängigkeitspaketen erstellen.
Tests ausführen
Sobald Sie Ihre Umgebung konfiguriert haben, können Sie molecule
mit Folgendem ausführen:
pipenv run molecule test
Regenerierung der Sperrdatei
Sie sollten dies nicht sehr häufig tun müssen, aber wenn Sie die Python-Paketanforderungen mit pipenv install {some_package}
-Befehlen oder durch direktes Bearbeiten der Pipfile
ändern oder wenn Sie feststellen, dass die Build-Abhängigkeiten veraltet sind, müssen Sie möglicherweise die Pipfile.lock
regenerieren.
pipenv lock
Stellen Sie sicher, dass Sie die regenerierte Pipfile.lock
einchecken, wenn dieser Prozess abgeschlossen ist.
Lizenz
MIT
ansible-galaxy install triplepoint.znc