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
lubdnf install java-17-openjdk-headless
- Dla Ubuntu zainstaluj setfacl z pakietu
acl
–apt 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 orazacl
dla dystrybucji opartych na Debianie. Na razie można to zainstalować, ustawiając tę opcję natrue
.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 środowiskowaKAFKA_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.
ansible-galaxy install dragomirr.kafka