dragomirr.kafka

Rôle Ansible pour Kafka

Rôle Ansible pour installer Kafka en mode KRaft sur les distributions Debian et RedHat. KRaft est considéré comme prêt pour la production à partir de la version 3.3.1, donc ce rôle doit être utilisé pour déployer Kafka dans une version supérieure ou égale à 3.3.1.

Testé avec Ubuntu 22.04 et AlmaLinux 8, mais devrait fonctionner avec la plupart des distributions, surtout si ce rôle n'est pas utilisé pour installer des dépendances. Voir la variable kafka_install_dependencies.

Pour plus d'informations, consultez le changelog.

Exigences

  • Architecture x86_64 sur les serveurs qui exécuteront Kafka
  • Ansible 2.15 -- non testé avec d'autres versions, mais devrait probablement fonctionner avec toute version égale ou supérieure à 2.10
  • Java installé -- version 8 (dépréciée), 11 ou 17. -- apt install openjdk-17-jre-headless ou dnf install java-17-openjdk-headless
  • Pour Ubuntu, setfacl du package acl -- apt install acl

Variables du Rôle

Requis :

  • kafka_node_id -- identifiant du nœud Kafka. Doit être un entier ou zéro et unique par hôte.

Optionnel :

  • kafka_topics -- liste des sujets Kafka avec les paramètres des sujets.
  • kafka_install_dependencies -- doit-on installer Java et aussi acl pour les distributions basées sur Debian. Pour l'instant, cela peut être installé en réglant cela à true.
  • kafka_config_path -- si non défini, la configuration sera déployée dans le répertoire home de Kafka. Ne doit pas être défini sur l'emplacement par défaut de la configuration car les exécutions ultérieures du rôle ne seraient pas idempotentes et provoqueraient un redémarrage de Kafka.
  • kafka_additional_config -- spécifiez une carte de paramètres de configuration qui ne sont pas définis par le rôle.
  • kafka_opts -- spécifiez une liste ou une chaîne d'options Kafka à exécuter au démarrage. À partir de cette variable, la variable d'environnement KAFKA_OPTS sera créée.

Dépendances

Aucune avec kafka_install_dependencies=true. Pour d'autres cas, consultez la section des exigences.

Exemple de Playbook

Installer le rôle en utilisant ansible-galaxy ansible-galaxy install dragomirr.kafka

- hosts: servers
  roles:
     - role: dragomirr.kafka
       # définir kafka_node_id dans le play n'est valide que si vous avez 1 nœud Kafka
       # si vous avez plusieurs nœuds Kafka, vous devez définir un kafka_node_id unique pour chaque nœud
       kafka_node_id: 0
       kafka_heap_size: 2G
       kafka_install_dependencies: true
       kafka_topics:
         - name: topic1
         - name: topic2
           replication_factor: 1
           partitions: 10
      # ajouter une configuration qui n'est pas définie par le rôle
      kafka_additional_config:
        message.max.bytes: 10000
      # ajouter des options de démarrage Kafka
      kafka_opts:
        - -XX:NewSize=256m

Licence

GPL3

Test

Les tests sont réalisés avec molecule utilisant virtualbox et vagrant

Il y a 3 scénarios :

  • Scénario par défaut utilisant 1 instance.
  • Scénario de cluster utilisant 3 instances avec les rôles de contrôleur et de courtier pour toutes les instances.
  • Scénario de cluster combiné utilisant 6 instances où 3 sont dans les rôles de courtier et de contrôleur et 3 uniquement dans le rôle de courtier.
À propos du projet

Install Apache Kafka with KRaft mode

Installer
ansible-galaxy install dragomirr.kafka
Licence
Unknown
Téléchargements
2.8k
Propriétaire