dragomirr.kafka

Rola Ansible do Kafki

Rola Ansible do instalacji Kafki w trybie KRaft na dystrybucjach Debian i RedHat. KRaft jest oznaczony jako gotowy do użycia w wersji 3.3.1, więc ta rola powinna być używana do wdrażania wersji Kafki równej lub większej niż 3.3.1.

Testowana na Ubuntu 22.04 i AlmaLinux 8, ale powinna działać na większości dystrybucji, zwłaszcza jeśli nie używasz tej roli do instalacji zależności. Zobacz zmienną kafka_install_dependencies.

Aby uzyskać więcej informacji, sprawdź dziennik zmian.

Wymagania

  • Architektura x86_64 na serwerach, które będą uruchamiać Kafkę
  • Ansible 2.15 – nie testowano z innymi wersjami, ale prawdopodobnie zadziała z wersjami równymi lub wyższymi niż 2.10
  • Zainstalowana Java – wersja 8 (przestarzała), 11 lub 17. – apt install openjdk-17-jre-headless lub dnf install java-17-openjdk-headless
  • Dla Ubuntu zainstaluj setfacl z pakietu aclapt install acl

Zmienne roli

Wymagane:

  • kafka_node_id – identyfikator węzła Kafki. Musi być liczbą całkowitą lub zerem i unikalny dla każdego hosta.

Opcjonalne:

  • kafka_topics – lista tematów Kafki z ustawieniami tematów.
  • kafka_install_dependencies – czy Java powinna być zainstalowana oraz acl dla dystrybucji opartych na Debianie. Na razie można to zainstalować, ustawiając tę opcję na true.
  • kafka_config_path – jeśli nie ustawione, konfiguracja będzie wdrażana w katalogu domowym Kafki. Nie należy ustawiać domyślnej lokalizacji konfiguracji, ponieważ kolejne uruchomienia roli nie będą idempotentne i spowodują ponowne uruchomienie Kafki.
  • kafka_additional_config – określ mapę parametrów konfiguracyjnych, które nie są zdefiniowane przez rolę.
  • kafka_opts – określ listę lub ciąg opcji Kafki do uruchomienia przy starcie. Z tej zmiennej zostanie utworzona zmienna środowiskowa KAFKA_OPTS.

Zależności

Brak przy kafka_install_dependencies=true. W innych przypadkach zapoznaj się z sekcją wymagań.

Przykład Playbooka

Zainstaluj rolę używając ansible-galaxy ansible-galaxy install dragomirr.kafka

- hosts: serwery
  roles:
     - role: dragomirr.kafka
       # ustawienie kafka_node_id w play jest ważne tylko jeśli masz 1 węzeł Kafki
       # jeśli masz wiele węzłów Kafki, musisz ustawić unikalny kafka_node_id dla każdego węzła
       kafka_node_id: 0
       kafka_heap_size: 2G
       kafka_install_dependencies: true
       kafka_topics:
         - name: topic1
         - name: topic2
           replication_factor: 1
           partitions: 10
      # dodawanie konfiguracji, która nie jest zdefiniowana przez rolę
      kafka_additional_config:
        message.max.bytes: 10000
      # dodawanie opcji uruchamiania Kafki
      kafka_opts:
        - -XX:NewSize=256m

Licencja

GPL3

Testowanie

Testy są przeprowadzane za pomocą molecule z użyciem virtualbox i vagrant

Istnieją 3 scenariusze:

  • Domyślny scenariusz z 1 instancją.
  • Scenariusz klastra z 3 instancjami, gdzie wszystkie pełnią zarówno rolę kontrolera, jak i brokera.
  • Scenariusz klastra połączony z 6 instancjami, gdzie 3 pełnią rolę brokera i kontrolera, a 3 tylko brokera.
O projekcie

Install Apache Kafka with KRaft mode

Zainstaluj
ansible-galaxy install dragomirr.kafka
Licencja
Unknown
Pobrania
2.8k
Właściciel