triplepoint.znc

Ansible ZNC Estado de Construcción

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

Acerca del proyecto

The ZNC IRC bouncer

Instalar
ansible-galaxy install triplepoint.znc
Licencia
mit
Descargas
100
Propietario