opstree_devops.kafka_cluster
OSM: Kafka
KafkaとZookeeperクラスターを設定する高性能なAnsibleロールです。
要件
このロールの唯一の要件はJavaです。
私たちのJavaロールはこちらで見つけられます。
ロール変数
変数は**必須** と オプション の2つに分類されています。
必須変数
変数名 | デフォルト値 | 可能な値 | 説明 |
---|---|---|---|
zookeeper_data_dir | /opt/zookeeper |
任意のLinuxディレクトリ | Zookeeperが情報を保存するデータディレクトリ |
installation_dir | /opt |
任意のLinuxディレクトリ | Kafkaをインストールしたいディレクトリ |
kafka_major_version | 2.12 |
有効なKafkaバージョン | Kafkaリリースのメジャーバージョン |
kafka_minor_version | 2.2.1 |
有効なKafkaバージョン | Kafkaリリースのマイナーバージョン |
オプション変数
変数名 | デフォルト値 | 可能な値 | 説明 |
---|---|---|---|
kafka_service_user_name | kafka |
Kafkaのサービスユーザー名 | すべてのことが実行されるKafkaのシステムユーザー名 |
kafka_service_group_name | kafka |
Kafkaのサービスグループ名 | すべてのことが実行されるKafkaのシステムグループ名 |
kafka_logs_dir | /var/log/kafka |
任意のLinuxディレクトリ | Kafkaがログを生成するディレクトリ |
zk_client_port | 2181 |
任意のLinuxポート番号 | Zookeeperクライアントの接続ポート |
init_limit | 5 |
任意の整数時間 | initLimitは、Zookeeperがリーダーに接続するためにクォーラム内のZookeeperサーバーにかける時間制限 |
sync_limit | 2 |
任意の整数時間 | entry syncLimitは、サーバーがリーダーからどれだけ古くなれるかを制限 |
tick_time | 2000 |
任意の整数時間 | Zookeeperが使用する基本時間単位(ミリ秒)。ハートビートを行い、最小セッションタイムアウトはtickTimeの2倍 |
max_memory_heap | -Xmx256M |
JVMのメモリサイズ | サーバー構成に応じて変更するべきKafkaの最大ヒープサイズ |
min_memory_heap | -Xmx128M |
JVMのメモリサイズ | サーバー構成に応じて変更するべきKafkaの最小ヒープサイズ |
インベントリ
インベントリは以下のようになります:-
[zookeeper] # ZookeeperのホストおよびID情報
zookeeper1 zookeeper_id=1
zookeeper2 zookeeper_id=2
zookeeper3 zookeeper_id=3
[kafka] # KafkaのホストおよびブローカーID情報
kafka1 kafka_broker_id=1
kafka2 kafka_broker_id=2
kafka3 kafka_broker_id=3
[kafka_cluster:children] # KafkaとZookeeperグループの親グループ
zookeeper
kafka
[kafka_cluster:vars] # kafka_cluster親グループの変数
ansible_user=ubuntu
例プレイブック
以下は例のプレイブックです:-
---
- hosts: kafka_cluster
roles:
- role: osm_kafka_cluster
become: yes
使用方法
このロールを使用するには、プレイブックを実行するだけです。
ansible-playbook -i hosts site.yml
セットアップのためのテストケース実行
テストケースを実行するためには、inspecという別のフォルダーがあります。テストケースを実行する場合は、Inspec(https://www.inspec.io/)をインストールする必要があります。
実行するコマンド:
inspec exec . -t ssh://username@server_ip -i /path/to/keyfile