triplepoint.znc

Ansible ZNC

Installez et configurez le serveur proxy ZNC IRC.

Inclut le module ClientBuffer pour prendre en charge plusieurs tampons clients séparés par compte.

Comme ce rôle dépend d'un conteneur Docker, il n'est pas aussi évident d'utiliser la commande znc pour des fonctions utilitaires, comme --makepass. Pour référence, voici comment exécuter la commande de mot de passe depuis une machine ayant Docker configuré :

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

Exigences

Pas de rôles de dépendance stricts, mais un environnement Docker doit être en cours d'exécution sur l'hôte pour que ce rôle soit déployé. Le rôle geerlingguy.docker satisfait cette exigence.

Variables du rôle

Pour plus de détails sur la configuration de ZNC, consultez la documentation de configuration de ZNC.

Pour plus d'informations sur les modules globaux, utilisateur et réseau de ZNC, consultez la documentation des modules ZNC.

Installation de ZNC

znc_exec_user: znc-admin    # L'utilisateur sous lequel ZNC va s'exécuter
znc_exec_user_and_group_id: 1066  # L'uid et gid de l'utilisateur exécutant
znc_docker_image_version: 0.1.6   # La version taguée de l'image Docker `triplepoint/docker-znc`
znc_install_version: 1.6.5  # La version de ZNC installée avec l'image Docker. Doit être synchronisée.
znc_config_root: /etc/znc   # L'emplacement racine de la structure de fichiers de configuration de ZNC

Configuration globale de ZNC

znc_max_buffer_size: 100000    # La taille maximum de tout tampon utilisateur. Ceci est utilisé par défaut si aucune valeur spécifique à l'utilisateur n'est donnée.
znc_port: 6666                 # Sur quel port ZNC écoutera-t-il ?
znc_ipv4: true                 # ZNC doit-il écouter pour des connexions ipv4 ?
znc_ipv6: false                # ipv6 ?
znc_ssl: true                  # ZNC doit-il s'attendre à des connexions via ssl ?
znc_ssl_certfile: "{{ znc_config_root }}/znc.pem"   # Si ssl est activé, où se trouve le fichier PEM ? Cela est généré par la construction Ansible.
znc_global_modules:                                 # Quels modules globaux doivent être installés pour une utilisation par tous les utilisateurs et réseaux ? Notez que ceux-ci sont distincts des modules utilisateurs et réseaux définis ci-dessous.
  - webadmin

Configuration de la définition d'utilisateur ZNC

znc_users:                                # Il est conseillé d'avoir un utilisateur administrateur séparé sans réseaux, pour administrer directement le serveur ZNC. Ici, nous avons juste un utilisateur, pour simplifier.
  - name: admin
    password:                             # Cela peut être généré avec `znc --makepass`. Celui-ci est pour le mot de passe "admin".
      method: "sha256"
      hash: "481fe84cc70161b20eb0c487d212e8b94cabb45cb9f08b6c51cc2c0131c1b42e"
      salt: "J*;s-Z!gjJ:oJ.kThRZv"
    nick: adminuser
    realname: Utilisateur Admin ZNC
    admin: true                           # Il devrait y avoir au moins un utilisateur administrateur, mais votre utilisateur typique ne devrait probablement pas être administrateur.
    allow: "*"                            # Optionnel
    altnick: adminuser_                   # Optionnel
    autoclearchanbuffer: true             # Optionnel, devrait être faux si le clientbuffer est utilisé
    autoclearquerybuffer: true            # Optionnel, devrait être faux si le clientbuffer est utilisé
    buffer: 100000                        # Optionnel
    chanmodes: "+stn"                     # Optionnel
    ident: adminuser_                     # Optionnel
    multiclients: false                   # Optionnel
    networks:                             # Optionnel, bien qu'en l'absence de réseaux, l'utilisateur ne pourra pas se connecter à des serveurs IRC externes.
      freenode:
        server: chat.freenode.net
        port: 6697
        ssl: true
        password: ""                      # Optionnel, c'est le mot de passe avec lequel l'utilisateur se connectera au serveur de chat distant.
        channels:                         # Liste optionnelle, l'utilisateur se connectera à chacun de ces canaux sur le serveur de chat distant.
          - "#freenode"                   # Cela doit être commenté pour YAML, s'il y a un hash dans le nom du canal.
        modules:                          # Liste optionnelle, ce sont les modules spécifiques au réseau.
          - route_replies
          - keepnick
          - clientbuffer                  # Assurez-vous de désactiver `autoclearchanbuffer` et `autoclearquerybuffer` si cela est activé pour cet utilisateur.
    modules:                              # Ce sont les modules spécifiques à l'utilisateur.
      - chansaver
      - controlpanel
      - webadmin

Dépendances

Aucune.

Exemple de Playbook

- hosts: whatever
  roles:
    - triplepoint.znc

Test du rôle

Ce rôle est testé avec molecule, en utilisant pipenv pour gérer les dépendances et l'environnement de test Python.

Configuration de votre environnement d'exécution

pip install pipenv

Notez que pip-tools ne semble pas bien fonctionner avec pipenv. Vous ne devez pas avoir pip-tools installé pour que cela fonctionne correctement.

Une fois pipenv installé, vous pouvez construire l'environnement virtuel d'exécution avec :

pipenv install --ignore-pipfile

Cela créera un environnement virtuel avec tous les packages de dépendance Python installés.

Exécution des Tests

Une fois votre environnement configuré, vous pouvez exécuter molecule avec :

pipenv run molecule test

Régénération du Fichier de Lock

Vous ne devriez pas avoir à faire cela très souvent, mais si vous changez les exigences des packages Python en utilisant des commandes pipenv install {some_package} ou en modifiant directement le Pipfile, ou si vous constatez que les dépendances de construction ne sont plus à jour, vous devrez peut-être régénérer le Pipfile.lock.

pipenv lock

Assurez-vous de valider le Pipfile.lock régénéré lorsque ce processus est terminé.

Licence

MIT

À propos du projet

The ZNC IRC bouncer

Installer
ansible-galaxy install triplepoint.znc
Licence
mit
Téléchargements
100
Propriétaire