dragomirr.kafka

Rol de Ansible para Kafka

Rol de Ansible para instalar Kafka en modo KRaft en distribuciones Debian y RedHat. KRaft está marcado como listo para producción en la versión 3.3.1, por lo que este rol debe usarse para desplegar versiones de Kafka mayores o iguales a 3.3.1.

Se ha probado con Ubuntu 22.04 y AlmaLinux 8, pero debería funcionar con la mayoría de las distribuciones, especialmente cuando no se utiliza este rol para instalar dependencias. Consulta la variable kafka_install_dependencies.

Para más información, consulta el registro de cambios.

Requisitos

  • Arquitectura x86_64 en los servidores que ejecutarán Kafka.
  • Ansible 2.15 -- no se ha probado con otras versiones, pero probablemente funcionaría con cualquier versión igual o superior a 2.10.
  • Java instalado -- versión 8 (obsoleta), 11 o 17. -- apt install openjdk-17-jre-headless o dnf install java-17-openjdk-headless.
  • Para Ubuntu, se necesita setfacl del paquete acl -- apt install acl.

Variables del Rol

Requeridas:

  • kafka_node_id -- ID del nodo de Kafka. Debe ser un entero o cero y único por host.

Opcionales:

  • kafka_topics -- lista de temas de Kafka con configuraciones de tema.
  • kafka_install_dependencies -- ¿debe instalarse Java y también acl para distribuciones basadas en Debian? Por ahora, se puede instalar utilizando el rol configurando esto en true.
  • kafka_config_path -- si no se establece, la configuración se desplegará en el hogar de Kafka. No debe configurarse en la ubicación de configuración predeterminada, ya que las ejecuciones subsiguientes del rol no serán idempotentes y causarán un reinicio de Kafka.
  • kafka_additional_config -- especificar un mapa de parámetros de configuración que no están definidos por el rol.
  • kafka_opts -- especificar una lista o cadena de opciones de Kafka para ejecutar al inicio. A partir de esta variable, se creará la variable de entorno KAFKA_OPTS.

Dependencias

Ninguna con kafka_install_dependencies=true. Para otros casos, consulta la sección de requisitos.

Ejemplo de Playbook

Instalar el rol usando ansible-galaxy ansible-galaxy install dragomirr.kafka

- hosts: servers
  roles:
     - role: dragomirr.kafka
       # establecer kafka_node_id en el play es válido solo si tienes 1 nodo de kafka.
       # si tienes múltiples nodos de kafka, necesitas establecer un kafka_node_id único para cada nodo.
       kafka_node_id: 0
       kafka_heap_size: 2G
       kafka_install_dependencies: true
       kafka_topics:
         - name: topic1
         - name: topic2
           replication_factor: 1
           partitions: 10
      # agregando configuración que no está definida por el rol.
      kafka_additional_config:
        message.max.bytes: 10000
      # agregando opciones de inicio de Kafka.
      kafka_opts:
        - -XX:NewSize=256m

Licencia

GPL3

Pruebas

Las pruebas se realizan usando molecule con virtualbox y vagrant.

Hay 3 escenarios:

  • Escenario predeterminado usando 1 instancia.
  • Escenario de clúster usando 3 instancias con roles de controlador y corredor para todas las instancias.
  • Escenario de clúster combinado usando 6 instancias donde 3 tienen rol de corredor y controlador, y 3 solo de corredor.
Acerca del proyecto

Install Apache Kafka with KRaft mode

Instalar
ansible-galaxy install dragomirr.kafka
Licencia
Unknown
Descargas
2.8k
Propietario