dragomirr.kafka

Ansible Kafka ロール

Debian および RedHat ディストリビューションで KRaft モードの Kafka をインストールするための Ansible ロールです。KRaft はバージョン 3.3.1 で生産準備が整ったとされているため、このロールは Kafka バージョン 3.3.1 以上をデプロイするために使用すべきです。

Ubuntu 22.04 と AlmaLinux 8 でテスト済みですが、依存関係をインストールするためにこのロールを使用しない限り、ほとんどのディストリビューションで動作するはずです。 kafka_install_dependencies 変数を参照してください。

詳細は changelog を確認してください。

要件

  • Kafka を実行するサーバーは x86_64 アーキテクチャであること
  • Ansible 2.15 - 他のバージョンでのテストはしていませんが、2.10 以上のバージョンではおそらく動作するでしょう
  • Java がインストールされていること - バージョン 8(非推奨)、11、または 17 - apt install openjdk-17-jre-headless または dnf install java-17-openjdk-headless
  • Ubuntuでは、acl パッケージから setfacl をインストールする必要があります - apt install acl

ロール変数

必須:

  • kafka_node_id - Kafka ノード ID。整数またはゼロで、ホストごとにユニークである必要があります。

オプション:

  • kafka_topics - Kafka トピックのリストと設定。
  • kafka_install_dependencies - Debian ベースのディストリビューションに Java と acl をインストールする必要があるか。現状、これを true に設定することでインストール可能です。
  • kafka_config_path - 設定しない場合、設定は Kafka ホームにデプロイされます。次回のロール実行で冪等性が失われ、Kafka の再起動を引き起こす可能性があるため、デフォルトの設定場所に設定しないでください。
  • kafka_additional_config - ロールで定義されていない設定パラメータのマップを指定します。
  • kafka_opts - 起動時に実行する Kafka オプションのリストまたは文字列を指定します。この変数から環境変数 KAFKA_OPTS が作成されます。

依存関係

kafka_install_dependencies=true の場合、依存関係はありません。その他の場合は、要件セクションを参照してください。

プレイブックの例

Ansible Galaxy を使用してロールをインストールします ansible-galaxy install dragomirr.kafka

    - hosts: servers
      roles:
         - role: dragomirr.kafka
           # プレイ内で kafka_node_id を設定するのは、1 つの Kafka ノードがある場合のみ有効です
           # 複数の Kafka ノードがある場合は、それぞれにユニークな kafka_node_id を設定する必要があります
           kafka_node_id: 0
           kafka_heap_size: 2G
           kafka_install_dependencies: true
           kafka_topics:
             - name: topic1
             - name: topic2
               replication_factor: 1
               partitions: 10
          # ロールで定義されていない設定を追加
          kafka_additional_config:
            message.max.bytes: 10000
          # Kafka の起動オプションを追加
          kafka_opts:
            - -XX:NewSize=256m

ライセンス

GPL3

テスト

テストは、molecule を使用して、virtualbox および vagrant で行います。

シナリオは 3 つあります:

  • 1 インスタンスを使用するデフォルトシナリオ。
  • すべてのインスタンスに対してコントローラーとブローカーの役割を持つ 3 インスタンスを使用するクラスターシナリオ。
  • 6 インスタンスを使用するクラスター結合シナリオ。これらのうち 3 インスタンスはブローカーとコントローラーの役割を持ち、残りの 3 インスタンスはブローカーの役割のみです。
プロジェクトについて

Install Apache Kafka with KRaft mode

インストール
ansible-galaxy install dragomirr.kafka
ライセンス
Unknown
ダウンロード
2.8k
所有者