1. 程式人生 > >Ansible入門篇(六):Kafka自動化安裝

Ansible入門篇(六):Kafka自動化安裝

Kafka是一種高吞吐量的分散式釋出訂閱訊息系統,可作為中介軟體進行資料隔離、傳輸作用。

Kafka安裝包下載

到 Kafka官網下載對應版本的安裝包,本文以kafka 1.0.2為例。

將下載好的kafka_2.11-1.0.2.tgz上傳到/opt/ansible/roles/files目錄下,本文將所有tar安裝包都進行了重新命名操作,比如將kafka_2.11-1.0.2.tgz解壓後重命名為kafka並打成kafka.tar.gz包。

 

編寫主機hosts 

編輯/opt/ansible/hosts檔案新增部署Kafka機器IP 

[kafka_servers]
172.18.18.120   broker_id=1
172.18.18.121   broker_id=2
172.18.18.122   broker_id=3 

 

編寫Kafka配置檔案 

將kafka_2.11-1.0.2.tgz解壓後的配置檔案server.properties和producer.properties修改成自己的配置並重命名為server.properties.js和producer.properties.j2,然後上傳到/opt/ansible/roles/templates/ 目錄下。由於配置檔案較多,本文不進行展示。

 

編寫引數配置main.yml

編輯/opt/ansible/roles/vars/main.yml檔案,新增變數  

BigdataDir: /opt/hzgc  

AnsibleDir: /opt/ansible

 

 編寫執行檔案kafka.yml 

- hosts: kafka_servers
  remote_user: root
  roles:
  - roles

 

  tasks:
    - name: copy and unzip kafka
      unarchive: src={{AnsibleDir}}/roles/files/kafka.tar.gz dest={{BigdataDir}}
    - name: mkdir dir for kafka logs
      file: dest={{BigdataDir}}/kafka/logs mode=0755 state=directory
    - name: install configuration file for kafka
      template: src={{AnsibleDir}}/roles/templates/server.properties.j2 dest={{BigdataDir}}/kafka/config/server.properties
    - name: install configuration file producer.properties for kafka
      template: src={{AnsibleDir}}/roles/templates/producer.properties.j2 dest={{BigdataDir}}/kafka/config/producer.properties
    - name: chmod permission
      shell: chmod +x {{BigdataDir}}/kafka/bin/*
    - name: start kafka
      shell: sh {{BigdataDir}}/kafka/bin/kafka-server-start.sh -daemon {{BigdataDir}}/kafka/config/server.properties &
      tags:
       - start kafka

 

執行Kafka安裝部署 及啟動

ansible-playbook -i hosts  yml/kafka.yml 

檢視是否安裝成功:jps