美文网首页
Ansible部署系列续:(一)安装zookeeper

Ansible部署系列续:(一)安装zookeeper

作者: Anson_1f2a | 来源:发表于2021-06-13 23:25 被阅读0次

    1. 安装zookeeper

    1.1. 说明

    由于之前的项目用到Kafka,旧版的Kafka需要用到zookeeper,在这里也记录一下。
    myid从1开始
    ansiblehosts文件

    [zookeeperservers]
    sz-1 zk_myid=1
    sz-2 zk_myid=2
    

    vars.yml添加参数

    ZOOKEEPER_DATA_DIR: /home/data/zookeeper/data
    

    1.2. yml脚本

    ---
    - hosts: zookeeperservers
      remote_user: root
      vars_files:
        - ../vars.yml
    
      tasks:
        - name: copy and unzip zookeeper
          unarchive:
            src: "{{ PLAYBOOK_DIR }}/files/apache-zookeeper-3.6.1-bin.tar.gz"
            dest: "{{ INSTALL_DIR }}"
    
        - name: mkdir ditectory for zookeeper data
          file:
            dest: "{{ ZOOKEEPER_DATA_DIR }}"
            mode: 0755
            state: directory
            owner: root
            group: root
    
        - name: Copy myid file
          template:
            src: "{{ PLAYBOOK_DIR }}/zookeeper/templates/myid.j2"
            dest: "{{ ZOOKEEPER_DATA_DIR }}/myid"
            owner: root
            group: root
            mode: 0755
    
        - name: install properties file for zookeeper
          template:
            src: "{{ PLAYBOOK_DIR }}/zookeeper/templates/zoo.cfg.j2"
            dest: "{{ INSTALL_DIR }}/apache-zookeeper-3.6.1-bin/conf/zoo.cfg"
            owner: root
            group: root
            mode: 0755
            
        - name: firewarld add 2888
          firewalld:
            port: 2888/tcp
            permanent: true
            immediate: true
            zone: public
            state: enabled
        - name: firewarld add 3888
          firewalld:
            port: 3888/tcp
            permanent: true
            immediate: true
            zone: public
            state: enabled
    
        - name: start zookeeper
          shell: "{{ INSTALL_DIR }}/apache-zookeeper-3.6.1-bin/bin/zkServer.sh start"
    
          tags:
            - start zookeeper
    

    1.3. 模板文件

    因为搭建的是集群环境,因此都需要配置节点

    1.3.1 zoo.cfg.j2

    # The number of milliseconds of each tick
    tickTime=2000
    # The number of ticks that the initial 
    # synchronization phase can take
    initLimit=5
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    syncLimit=2
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    dataDir={{ ZOOKEEPER_DATA_DIR }}
    # the port at which the clients will connect
    clientPort=2181
    # the maximum number of client connections.
    # increase this if you need to handle more clients
    #maxClientCnxns=60
    #
    # Be sure to read the maintenance section of the 
    # administrator guide before turning on autopurge.
    #
    # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
    #
    # The number of snapshots to retain in dataDir
    #autopurge.snapRetainCount=3
    # Purge task interval in hours
    # Set to "0" to disable auto purge feature
    #autopurge.purgeInterval=1
    
    ## Metrics Providers
    #
    # https://prometheus.io Metrics Exporter
    #metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
    #metricsProvider.httpPort=7000
    #metricsProvider.exportJvmInfo=true
    
    {% for host in groups['zookeeperservers'] %}
    {%- if hostvars[host].inventory_hostname == ansible_default_ipv4.address -%}
    server.{{ hostvars[host].zk_myid }}=0.0.0.0:2888:3888
    {% else %}
    server.{{ hostvars[host].zk_myid }}={{ hostvars[host].inventory_hostname }}:2888:3888
    {% endif %}
    {% endfor %}
    

    1.3.2 myid.j2

    {{ zk_myid }}
    

    1.4. 运行ansible-playbook

    ansible-playbook -i /etc/ansible/hosts zookeeper/main.yml
    

    相关文章

      网友评论

          本文标题:Ansible部署系列续:(一)安装zookeeper

          本文链接:https://www.haomeiwen.com/subject/vqxceltx.html