triplepoint.znc
Ansible ZNC 
Instalar y configurar el reboteador ZNC IRC.
Incluye el módulo ClientBuffer para soportar múltiples buffers de cliente separados por cuenta.
Como este rol depende de un contenedor Docker, no es tan sencillo llamar el binario znc
para funciones de utilidad, como --makepass
. Para referencia, aquí está cómo ejecutar el comando de contraseña desde una máquina que tiene Docker configurado:
docker run -it --rm triplepoint/docker-znc:latest znc --makepass
Requisitos
No hay roles de dependencia estricta, pero se necesita que algún tipo de entorno Docker esté funcionando en el host para que este rol se despliegue. El rol geerlingguy.docker
satisface este requisito.
Variables del Rol
Para más detalles sobre la configuración de ZNC, consulta la documentación de configuración de ZNC.
Para más información sobre los módulos globales, de usuario y de red de ZNC, consulta la documentación de módulos de ZNC.
Instalación de ZNC
znc_exec_user: znc-admin # El usuario que se creará bajo el cual correrá znc
znc_exec_user_and_group_id: 1066 # El uid y gid del usuario ejecutor
znc_docker_image_version: 0.1.6 # La versión etiquetada de la imagen de Docker `triplepoint/docker-znc`
znc_install_version: 1.6.5 # La versión de znc instalada con la imagen de Docker. Debe estar sincronizada.
znc_config_root: /etc/znc # La ubicación raíz de la estructura de archivos de configuración de znc
Configuración Global de ZNC
znc_max_buffer_size: 100000 # El tamaño máximo de cualquier buffer de usuario. Se usa como valor predeterminado si no se da un valor específico de usuario.
znc_port: 6666 # ¿En qué puerto escuchará znc?
znc_ipv4: true # ¿Debería ZNC escuchar conexiones ipv4?
znc_ipv6: false # ¿ipv6?
znc_ssl: true # ¿Debería ZNC esperar conexiones a través de ssl?
znc_ssl_certfile: "{{ znc_config_root }}/znc.pem" # Si SSL está habilitado, ¿dónde está el archivo PEM? Esto es generado por la construcción de Ansible.
znc_global_modules: # ¿Qué módulos globales deberían instalarse para usarse con todos los usuarios y redes? Ten en cuenta que estos son diferentes de los módulos de usuario y red definidos abajo.
- webadmin
Configuración de Definición de Usuario de ZNC
znc_users: # Se recomienda tener un usuario administrador separado sin redes, para administrar el servidor ZNC directamente. Aquí solo tenemos un usuario, por brevedad.
- name: admin
password: # Estos pueden generarse con `znc --makepass`. Este es para la contraseña "admin".
method: "sha256"
hash: "481fe84cc70161b20eb0c487d212e8b94cabb45cb9f08b6c51cc2c0131c1b42e"
salt: "J*;s-Z!gjJ:oJ.kThRZv"
nick: adminuser
realname: Usuario Admin ZNC
admin: true # Debe haber al menos un usuario administrador, pero tu usuario típico probablemente no debería ser un administrador.
allow: "*" # Opcional
altnick: adminuser_ # Opcional
autoclearchanbuffer: true # Opcional, debería ser falso si se está utilizando el clientbuffer
autoclearquerybuffer: true # Opcional, debería ser falso si se está utilizando el clientbuffer
buffer: 100000 # Opcional
chanmodes: "+stn" # Opcional
ident: adminuser_ # Opcional
multiclients: false # Opcional
networks: # Opcional, aunque sin redes el usuario no se conectará a ningún servidor IRC externo.
freenode:
server: chat.freenode.net
port: 6697
ssl: true
password: "" # Opcional, esta es la contraseña con la que el usuario iniciará sesión en el servidor de chat remoto.
channels: # Lista opcional, el usuario se conectará a cada uno de estos canales en el servidor de chat remoto.
- "#freenode" # Estos deben comentarse para YAML, si hay un hash en el nombre del canal.
modules: # Lista opcional, estos son los módulos específicos de la red.
- route_replies
- keepnick
- clientbuffer # Asegúrate de deshabilitar `autoclearchanbuffer` y `autoclearquerybuffer` si esto está habilitado para este usuario.
modules: # Estos son los módulos específicos del usuario.
- chansaver
- controlpanel
- webadmin
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: whatever
roles:
- triplepoint.znc
Pruebas del Rol
Este rol se prueba con molecule
, utilizando pipenv
para manejar dependencias y el entorno de pruebas de Python.
Configurando tu Entorno de Ejecución
pip install pipenv
Nota, pip-tools
no parece funcionar bien con pipenv
. No deberías tener pip-tools
instalado para que esto funcione correctamente.
Una vez que tengas pipenv
instalado, puedes construir el entorno virtual de ejecución con:
pipenv install --ignore-pipfile
Esto creará un entorno virtual con todos los paquetes de dependencia de Python instalados.
Ejecutando Pruebas
Una vez que tengas tu entorno configurado, puedes ejecutar molecule
con:
pipenv run molecule test
Regenerando el Archivo de Bloqueo
No deberías tener que hacer esto muy a menudo, pero si cambias los requisitos de paquetes de Python usando pipenv install {some_package}
o editando el Pipfile
directamente, o si encuentras que las dependencias de construcción han quedado desactualizadas, podrías necesitar regenerar el Pipfile.lock
.
pipenv lock
Asegúrate de revisar el Pipfile.lock
regenerado cuando este proceso esté completo.
Licencia
MIT
ansible-galaxy install triplepoint.znc