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
oderdnf install java-17-openjdk-headless
- Für Ubuntu setfacl aus dem Paket
acl
–apt 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 auchacl
für Debian-basierte Distributionen installiert werden. Derzeit kann es installiert werden, indem diese Rolle auftrue
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 UmgebungsvariableKAFKA_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.
ansible-galaxy install dragomirr.kafka