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
oudnf install java-17-openjdk-headless
- Pour Ubuntu,
setfacl
du packageacl
--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 aussiacl
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'environnementKAFKA_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.
ansible-galaxy install dragomirr.kafka