triplepoint.znc

Ansible ZNC

Zainstaluj i skonfiguruj bouncera IRC ZNC.

Zawiera moduł ClientBuffer wspierający wiele oddzielnych buforów dla każdego konta.

Ponieważ ta rola opiera się na kontenerze Docker, uruchomienie polecenia znc dla funkcji pomocniczych, jak --makepass, nie jest tak proste. Oto jak uruchomić to polecenie na maszynie z ustawionym Dockiem:

docker run -it --rm triplepoint/docker-znc:latest znc --makepass

Wymagania

Nie ma twardych zależności, ale na hoście musi działać środowisko Docker, aby ta rola mogła być wdrożona. Rola geerlingguy.docker spełnia ten wymóg.

Zmienne Roli

Aby uzyskać więcej szczegółów dotyczących konfiguracji ZNC, zobacz dokumentację konfiguracji ZNC.

Aby uzyskać więcej informacji na temat globalnych, użytkowników i modułów sieciowych ZNC, zobacz dokumentację modułów ZNC.

Instalacja ZNC

znc_exec_user: znc-admin                # Użytkownik, pod którym będzie działać ZNC
znc_exec_user_and_group_id: 1066        # Identyfikator użytkownika i grupy exec
znc_docker_image_version: 0.1.6         # Wersja obrazu dockera `triplepoint/docker-znc`
znc_install_version: 1.6.5               # Wersja ZNC zainstalowana z obrazem dockera. Powinno być na bieżąco.
znc_config_root: /etc/znc                # Główna lokalizacja plików konfiguracyjnych ZNC

Globalna Konfiguracja ZNC

znc_max_buffer_size: 100000             # Maksymalny rozmiar bufora dla każdego użytkownika. To jest domyślna wartość, jeśli nie podano konkretnej wartości dla użytkownika.
znc_port: 6666                          # Na jakim porcie ZNC będzie nasłuchiwać?
znc_ipv4: true                          # Czy ZNC powinno nasłuchiwać połączeń IPv4?
znc_ipv6: false                         # A IPv6?
znc_ssl: true                           # Czy ZNC powinno oczekiwać połączeń przez SSL?
znc_ssl_certfile: "{{ znc_config_root }}/znc.pem"  # Gdzie znajduje się plik PEM, jeśli włączono SSL? Jest generowany przez Ansible.
znc_global_modules:                     # Jakie moduły globalne powinny być zainstalowane do użytku dla wszystkich użytkowników i sieci? Uwaga: są one oddzielne od modułów użytkowników i sieci.
  - webadmin

Konfiguracja Definicji Użytkownika ZNC

znc_users:                              # Warto mieć osobnego użytkownika admina bez sieci do bezpośredniego zarządzania serwerem ZNC. Tutaj mamy tylko jednego użytkownika dla uproszczenia.
  - name: admin
    password:                           # Hasła można wygenerować za pomocą `znc --makepass`. To hasło dla użytkownika "admin".
      method: "sha256"
      hash: "481fe84cc70161b20eb0c487d212e8b94cabb45cb9f08b6c51cc2c0131c1b42e"
      salt: "J*;s-Z!gjJ:oJ.kThRZv"
    nick: adminuser
    realname: Użytkownik administracyjny ZNC
    admin: true                         # Powinien być przynajmniej jeden użytkownik admina, ale typowy użytkownik prawdopodobnie nie powinien być adminem.
    allow: "*"                          # Opcjonalne
    altnick: adminuser_                 # Opcjonalne
    autoclearchanbuffer: true           # Opcjonalne, powinno być false, jeśli używasz clientbuffer
    autoclearquerybuffer: true          # Opcjonalne, powinno być false, jeśli używasz clientbuffer
    buffer: 100000                      # Opcjonalne
    chanmodes: "+stn"                   # Opcjonalne
    ident: adminuser_                   # Opcjonalne
    multiclients: false                 # Opcjonalne
    networks:                           # Opcjonalne, chociaż bez żadnych sieci użytkownik nie połączy się z żadnymi zewnętrznymi serwerami IRC.
      freenode:
        server: chat.freenode.net
        port: 6697
        ssl: true
        password: ""                     # Opcjonalne, to hasło, z którym użytkownik zaloguje się na zdalny serwer czatu.
        channels:                       # Opcjonalna lista kanałów, do których użytkownik połączy się na zdalnym serwerze czatu.
          - "#freenode"                 # To musi być skomentowane, jeśli w nazwie kanału jest hasz.
        modules:                        # Opcjonalna lista, to są moduły specyficzne dla sieci.
          - route_replies
          - keepnick
          - clientbuffer                # Upewnij się, że `autoclearchanbuffer` i `autoclearquerybuffer` są wyłączone, jeśli to jest włączone dla tego użytkownika.
    modules:                            # To są moduły specyficzne dla użytkownika.
      - chansaver
      - controlpanel
      - webadmin

Zależności

Brak.

Przykładowy Playbook

- hosts: whatever
  roles:
    - triplepoint.znc

Testowanie Roli

Ta rola jest testowana za pomocą molecule, używając pipenv do obsługi zależności oraz środowiska testowego Pythona.

Konfiguracja Środowiska Wykonawczego

pip install pipenv

Uwaga, pip-tools nie współpracuje dobrze z pipenv. Nie powinieneś mieć zainstalowanego pip-tools, aby to działało poprawnie.

Po zainstalowaniu pipenv, możesz zbudować wirtualne środowisko wykonawcze używając:

pipenv install --ignore-pipfile

To stworzy wirtualne środowisko z zainstalowanymi wszystkimi pakietami zależności Pythona.

Uruchamianie Testów

Gdy Twoje środowisko jest skonfigurowane, możesz uruchomić molecule używając:

pipenv run molecule test

Regeneracja Pliku Lock

Nie powinieneś tego robić zbyt często, ale jeśli zmienisz wymogi pakietów Python używając poleceń pipenv install {some_package} lub edytując bezpośrednio Pipfile, lub gdy zauważysz, że zależności budowy są nieaktualne, być może będziesz musiał zregenerować Pipfile.lock.

pipenv lock

Upewnij się, że sprawdzisz zregenerowany Pipfile.lock po zakończeniu tego procesu.

Licencja

MIT

O projekcie

The ZNC IRC bouncer

Zainstaluj
ansible-galaxy install triplepoint.znc
Licencja
mit
Pobrania
100
Właściciel