triplepoint.znc

Ansible ZNC Build Status

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

Über das Projekt

The ZNC IRC bouncer

Installieren
ansible-galaxy install triplepoint.znc
Lizenz
mit
Downloads
100
Besitzer