zookeeper自动化部署(结合ansible、pycharm)

1.创建项目

2.编写j2和site

site:

---
- hosts: all
  gather_facts: False

  vars:
    # zookeeper port
    zoo_port1: 2900
    zoo_port2: 3900
    zoo_listen_port: 2181

    # zookeeper user
    zookeeper_group: hadoop
    zookeeper_group_id: 1200
    zookeeper_user: zookeeper
    zookeeper_user_id: 1203

    # env path
    zookeeper_home: /data/service/zookeeper
    zookeeper_dataDir: /data/zk_data

    # env version
    zookeeper_version: 3.4.9

    # zk jvm setting
    ZK_MM_OPTS: "-server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Xms2024m  -Xmx2048m -XX:ParallelGCThreads=33 -XX:ConcGCThreads=8 -XX:CMSInitiatingOccupancyFraction=85"
    ZK_GC_OPT: "-verbose.gc -XX:  +PrintGC -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:+PrintTenuringDistribution  -Xloggc:/data/log/zookeeper/zk-gc.log -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/log/zookeeper/java_pid%p.hprof"

    # zk log
    ZOO_LOG_DIR: /data/log/zookeeper
    zookeeper.log.file: zookeeper.log
    zookeeper.log.threshold: DEBUG
    zookeeper.tracelog.file: zookeeper_trace.log
    log4j.rootLogger: INFO, LOGFILE
    log4j.appender.LOGFILE: org.apache.log4j.RollingFileAppender
    log4j.appender.LOGFILE.MaxFileSize: 100MB
    log4j.appender.LOGFILE.MaxBackupIndex: 10
    log4j.appender.LOGFILE.File: ${zookeeper.log.dir}/${zookeeper.log.file}
    log4j.appender.LOGFILE.layout: org.apache.log4j.PatternLayout
    log4j.appender.LOGFILE.layout.ConversionPattern: %d{dd MMM yyyy HH:mm:ss,SSS} %-5p [%t] (%C.%M:%L) %x - %m%n

  roles:
    - { role: zk_install }

log4j:

zookeeper.log.dir={{ZOO_LOG_DIR}}
zookeeper.log.file={{zookeeper.log.file}}
zookeeper.log.threshold={{zookeeper.log.threshold}}
zookeeper.tracelog.dir={{ZOO_LOG_DIR}}
zookeeper.tracelog.file={{zookeeper.tracelog.file}}
log4j.rootLogger={{log4j.rootLogger}}
log4j.appender.LOGFILE={{log4j.appender.LOGFILE}}
log4j.appender.LOGFILE.MaxFileSize={{log4j.appender.LOGFILE.MaxFileSize}}
log4j.appender.LOGFILE.MaxBackupIndex={{log4j.appender.LOGFILE.MaxBackupIndex}}
log4j.appender.LOGFILE.File={{log4j.appender.LOGFILE.File}}
log4j.appender.LOGFILE.layout={{log4j.appender.LOGFILE.layout}}
log4j.appender.LOGFILE.layout.ConversionPattern={{log4j.appender.LOGFILE.layout.ConversionPattern}}

zoo.cfg:

clientPort={{ zoo_listen_port }}
tickTime=2000
initLimit=10
syncLimit=5
dataDir={{ zookeeper_dataDir }}
maxClientCnxns=512
autopurge.purgeInterval=24
autopurge.snapRetainCount=3
{% for host in groups['all'] %}
server.{{ loop.index }}={{ hostvars[host].ansible_ssh_host }}:{{ zoo_port1 }}:{{ zoo_port2 }}
{% endfor %}

zk-env:

#!/bin/bash
###zk dir setting
export ZK_HOME={{zookeeper_home}}
export ZK_BIN=${ZK_HOME}/bin
export PATH=$PATH:$ZK_BIN
###zk jvm setting
export ZK_MM_OPTS={{ZK_MM_OPTS}}
export ZK_GC_OPT={{ZK_GC_OPT}}

myid:

{% for ip in groups['all'] %}
{% if  ip  == inventory_hostname %}
{{ loop.index }}
{% endif %}
{% endfor %}

3.编写main和handler

main写zk的wget、解压缩、创建文件目录等等,再加上j2文件:

- name: "copy zookeeper user env script"
  template: src="./zk-env.sh.j2" dest="/etc/profile.d/zk-env.sh" mode=0755

- name: Config zoo.cfg
  template: src="./zoo.cfg.j2" dest="{{zookeeper_home}}/conf/zoo.cfg" mode=0755

- name: Config log4j.properties
  template: src="./log4j.properties.j2" dest="{{zookeeper_home}}/conf/log4j.properties" mode=0755

- name: Config myid
  template: src="./myid.j2" dest="/data/zk_data/myid" mode=0755

handler加上启动命令就ok了 !!

zk自动化部署就完事了。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值