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
ansible-galaxy install triplepoint.znc