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

Ansible入門篇(五):Zookeeper自動化安裝

ZooKeeper是一個分散式應用程式協調服務,是Hadoop、Kafka及Hbase等的重要元件。

 

Zookeeper安裝包下載

Zookeeper官網下載對應版本的安裝包,本文以zookeeper 3.4.5為例。

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

 

編寫主機hosts

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

[zookeeper_servers]
172.18.18.120   myid=1
172.18.18.121   myid=2
172.18.18.122   myid=3

 

編寫Zookeeper配置檔案

將zookeeper-3.4.5.tar.gz解壓后里面的 conf/zoo_sameple.cfg檔案上傳到/opt/ansible/roles/templates/目錄下並重命名為zoo.cfg.j2,編輯內容如下:

tickTime=2000
initLimit=20
syncLimit=10
dataDir={{BigdataDir}}/zookeeper/data
dataLogDir={{BigdataDir}}/zookeeper/dataLogDir
clientPort=2181
quorumListenOnAllIPs=true
server.1={{server1_hostname}}:2888:3888
server.2={{server1_hostname}}:2888:3888
server.3={{server1_hostname}}:2888:3888

 

編寫引數配置main.yml

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

server1_hostname: 172.18.18.130
server2_hostname: 172.18.18.131
server3_hostname: 172.18.18.132
BigdataDir: /opt/hzgc 

 

編寫執行檔案zookeeper.yml 

- hosts: zookeeper_servers
  remote_user: root
  roles:
  - roles

  tasks:
    - name: mkdir directory for bigdata data
      file: dest={{BigdataDir}} mode=0755 state=directory
    - name: install zookeeper
      unarchive: src={{AnsibleDir}}/roles/files/zookeeper.tar.gz dest={{BigdataDir}}
    - name: install configuration file for zookeeper
      template: src={{AnsibleDir}}/roles/templates/zoo.cfg.j2 dest={{BigdataDir}}/zookeeper/conf/zoo.cfg
    - name: create log directory
      file: dest={{BigdataDir}}/zookeeper/dataLogDir mode=0755 state=directory
    - name: add myid file
      shell: echo {{ myid }} > {{BigdataDir}}/zookeeper/data/myid
    - name: start zookeeper
      shell:  sh {{BigdataDir}}/zookeeper/bin/zkServer.sh start
      tags:
      - start zookeeper

 

執行Zookeeper安裝部署 及啟動

ansible-playbook -i hosts  yml/zookeeper.yml  

檢視是否安裝成功:jps