dragomirr.kafka

Ansible Kafka Rolle

Ansible-Rolle zur Installation von Kafka im KRaft-Modus auf Debian- und RedHat-Distributionen. KRaft wird ab Version 3.3.1 als produktionsbereit angesehen, daher sollte diese Rolle zur Bereitstellung von Kafka-Versionen verwendet werden, die gleich oder größer als 3.3.1 sind.

Getestet mit Ubuntu 22.04 und AlmaLinux 8, sollte aber mit den meisten Distributionen funktionieren, insbesondere wenn diese Rolle nicht zur Installation von Abhängigkeiten verwendet wird. Siehe die Variable kafka_install_dependencies.

Für weitere Informationen siehe Änderungsprotokoll.

Anforderungen

  • x86_64 Architektur auf Servern, die Kafka ausführen werden
  • Ansible 2.15 – wurde nicht mit anderen Versionen getestet, sollte aber wahrscheinlich mit allem ab Version 2.10 funktionieren
  • Java installiert – Version 8 (veraltet), 11 oder 17 – apt install openjdk-17-jre-headless oder dnf install java-17-openjdk-headless
  • Für Ubuntu setfacl aus dem Paket aclapt install acl

Rollenvariablen

Erforderlich:

  • kafka_node_id – Kafka-Knoten-ID. Muss eine ganze Zahl oder null sein und pro Host eindeutig.

Optional:

  • kafka_topics – Liste der Kafka-Topics mit den Topic-Einstellungen.
  • kafka_install_dependencies – Soll Java und auch acl für Debian-basierte Distributionen installiert werden. Derzeit kann es installiert werden, indem diese Rolle auf true gesetzt wird.
  • kafka_config_path – Wenn nicht gesetzt, wird die Konfiguration im Kafka-Home bereitgestellt. Sollte nicht auf den Standardkonfigurationsstandort gesetzt werden, da nachfolgende Rollenaufrufe nicht idempotent sind und einen Neustart von Kafka verursachen.
  • kafka_additional_config – Geben Sie eine Map von Konfigurationsparametern an, die nicht durch die Rolle definiert sind.
  • kafka_opts – Geben Sie eine Liste oder einen String von Kafka-Optionen an, die beim Start ausgeführt werden sollen. Aus dieser Variablen wird die Umgebungsvariable KAFKA_OPTS erstellt.

Abhängigkeiten

Keine, wenn kafka_install_dependencies=true. Für andere Fälle siehe den Abschnitt Anforderungen.

Beispiel-Playbook

Installieren Sie die Rolle mit Ansible-Galaxy ansible-galaxy install dragomirr.kafka

- hosts: servers
  roles:
     - role: dragomirr.kafka
       # Die Einstellung kafka_node_id im Play ist nur gültig, wenn Sie 1 Kafka-Knoten haben
       # Wenn Sie mehrere Kafka-Knoten haben, müssen Sie für jeden Knoten eine eindeutige kafka_node_id festlegen
       kafka_node_id: 0
       kafka_heap_size: 2G
       kafka_install_dependencies: true
       kafka_topics:
         - name: topic1
         - name: topic2
           replication_factor: 1
           partitions: 10
      # Hinzufügen von Konfigurationen, die nicht durch die Rolle definiert sind
      kafka_additional_config:
        message.max.bytes: 10000
      # Hinzufügen von Kafka-Startoptionen
      kafka_opts:
        - -XX:NewSize=256m

Lizenz

GPL3

Tests

Die Tests werden mit molecule und virtualbox sowie vagrant durchgeführt.

Es gibt 3 Szenarien:

  • Standard-Szenario mit 1 Instanz.
  • Cluster-Szenario mit 3 Instanzen, die sowohl die Rolle Controller als auch Broker für alle Instanzen haben.
  • Kombiniertes Cluster-Szenario mit 6 Instanzen, von denen 3 die Rollen Broker und Controller und 3 nur die Rolle Broker haben.
Über das Projekt

Install Apache Kafka with KRaft mode

Installieren
ansible-galaxy install dragomirr.kafka
GitHub Repository
Lizenz
Unknown
Downloads
2.8k
Besitzer