Kafka触るのにVagrantとAnsibleで砂場環境を準備

Dockerだと関係ないところでハマりそうな気がしたのでVagrantにしてみた。ファイルはここに置いといた。

https://github.com/bufferings/sandbox-kafka

Vagrant + Ansible Local Provisioner

以前に触った時は、Ansible2系が出たばかりで、ちょっと手を入れなきゃ動かなかったけど、もう大丈夫だった。のでこんな風にすっきり。

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/xenial64"

  config.vm.provider "virtualbox" do |vb|
     vb.memory = "2048"
  end

  config.vm.provision "ansible_local" do |ansible|
    ansible.playbook = "playbook.yml"
  end
end

AnsibleでKafkaのQuickStartができる程度の環境を準備

っても、ファイルダウンロードして解凍するだけ。

playbookの書き方のルールとかよくわかってない。こんな感じに落ち着いた。

- hosts: all
  become: yes

  vars:
    scala_version: "2.11"
    kafka_version: "0.10.2.1"

    install_dir: "/opt"
    symlink_name: "kafka"
    kafka_name: "kafka_{{ scala_version }}-{{ kafka_version }}"
    kafka_download_url: "http://ftp.jaist.ac.jp/pub/apache/kafka/{{ kafka_version }}/{{ kafka_name }}.tgz"

  tasks:
  - name: ensure openjdk8 present
    apt:
      name: "openjdk-8-jdk"
      state: present
      update_cache: yes

  - name: ensure kafka present
    unarchive:
      remote_src: yes
      src: "{{ kafka_download_url }}"
      dest: "{{ install_dir }}"

  - name: ensure symlink present
    file:
      src: "{{ install_dir }}/{{ kafka_name }}"
      dest: "{{ install_dir }}/{{ symlink_name }}"
      mode: 0755
      state: link

ということで

クイックスタートする前に今日は力尽きた。動作確認を少ししただけ。

https://kafka.apache.org/quickstart

参照

以前にAnsible Local触った時:

bufferings.hatenablog.com

以前にKafka Streamsを触った時:

bufferings.hatenablog.com

それを読んだ時の僕: