ansible部署zookeeper和kafka集群

这篇具有很好参考价值的文章主要介绍了ansible部署zookeeper和kafka集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

节点 IP
ansible 192.168.200.75
node1 192.168.200.76
node2 192.168.200.77
node3 192.168.200.78

基础环境准备

基础环境配置就不过多赘述了
主机名、主机解析、免密访问、ansible下载、配置ansible主机、防火墙、selinux、配置centos2009镜像、配置ftp远程。均已配置

配置ansible文件(zookeeper)

在ansible节点的/root目录下创建example目录,作为Ansible工作目录,并创建cscc_install.yml文件作为部署的入口文件,编写如下内容:

[root@ansible ~]# mkdir example
[root@ansible ~]# cd example/
[root@ansible example]# mkdir -p myid/{myid1,myid2,myid3}
[root@ansible example]# echo "1" > myid/myid1/myid
[root@ansible example]# echo "2" > myid/myid2/myid
[root@ansible example]# echo "3" > myid/myid3/myid
[root@ansible example]# cat ftp.repo
[gpmall-repo]
name=gpmall
baseurl=ftp://ansible/gpmall-repo
gpgcheck=0
enabled=1
[centos]
name=centos
baseurl=ftp://ansible/centos
gpgcheck=0
enabled=1

[root@ansible example]# cat zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181
server.1=192.168.200.76:2888:3888
server.2=192.168.200.77:2888:3888
server.3=192.168.200.78:2888:3888

[root@ansible example]# cat cscc_install.yml
---
- hosts: all
  remote_user: root
  tasks:
    - name: rm repo
      shell: rm -rf /etc/yum.repos.d/*
    - name: copy repo
      copy: src=ftp.repo dest=/etc/yum.repos.d/
    - name: install java
      shell: yum -y install java-1.8.0-*
    - name: copy zookeeper
      copy: src=zookeeper-3.4.14.tar.gz dest=/root/zookeeper-3.4.14.tar.gz
    - name: tar-zookeeper
      shell: tar -zxvf zookeeper-3.4.14.tar.gz
    - name: copy zoo.cfg
      copy: src=zoo.cfg dest=/root/zookeeper-3.4.14/conf/zoo.cfg
    - name: mkdir
      shell: mkdir -p /tmp/zookeeper
- hosts: node1
  remote_user: root
  tasks:
    - name: copy myid1
      copy: src=myid/myid1/myid dest=/tmp/zookeeper/myid
- hosts: node2
  remote_user: root
  tasks:
    - name: copy myid2
      copy: src=myid/myid2/myid dest=/tmp/zookeeper/myid
- hosts: node3
  remote_user: root
  tasks:
    - name: copy myid3
      copy: src=myid/myid3/myid dest=/tmp/zookeeper/myid
- hosts: all
  remote_user: root
  tasks:
    - name: start zookerper
      shell: /root/zookeeper-3.4.14/bin/zkServer.sh start

[root@ansible example]# ls
cscc_install.yml  ftp.repo  myid  zoo.cfg  zookeeper-3.4.14.tar.gz

检查剧本

[root@ansible example]# ansible-playbook  --syntax-check cscc_install.yml

playbook: cscc_install.yml

[root@ansible example]# ansible-playbook cscc_install.yml

PLAY [all] *************************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************
ok: [192.168.200.77]
ok: [192.168.200.78]
ok: [192.168.200.76]

TASK [rm repo] *********************************************************************************************************
[WARNING]: Consider using the file module with state=absent rather than running 'rm'.  If you need to use command
because file is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in
ansible.cfg to get rid of this message.
changed: [192.168.200.77]
changed: [192.168.200.78]
changed: [192.168.200.76]

TASK [copy repo] *******************************************************************************************************
changed: [192.168.200.76]
changed: [192.168.200.78]
changed: [192.168.200.77]

TASK [install java] ****************************************************************************************************
[WARNING]: Consider using the yum module rather than running 'yum'.  If you need to use command because yum is
insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get rid
of this message.
changed: [192.168.200.77]
changed: [192.168.200.76]
changed: [192.168.200.78]

TASK [copy zookeeper] **************************************************************************************************
changed: [192.168.200.76]
changed: [192.168.200.78]
changed: [192.168.200.77]

TASK [tar-zookeeper] ***************************************************************************************************
[WARNING]: Consider using the unarchive module rather than running 'tar'.  If you need to use command because unarchive
is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get
rid of this message.
changed: [192.168.200.78]
changed: [192.168.200.76]
changed: [192.168.200.77]

TASK [copy zoo.cfg] ****************************************************************************************************
changed: [192.168.200.76]
changed: [192.168.200.77]
changed: [192.168.200.78]

TASK [mkdir] ***********************************************************************************************************
[WARNING]: Consider using the file module with state=directory rather than running 'mkdir'.  If you need to use command
because file is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in
ansible.cfg to get rid of this message.
changed: [192.168.200.76]
changed: [192.168.200.77]
changed: [192.168.200.78]

PLAY [node1] ***********************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
ok: [192.168.200.76]

TASK [copy myid1] ******************************************************************************************************
changed: [192.168.200.76]

PLAY [node2] ***********************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
ok: [192.168.200.77]

TASK [copy myid2] ******************************************************************************************************
changed: [192.168.200.77]

PLAY [node3] ***********************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
ok: [192.168.200.78]

TASK [copy myid3] ******************************************************************************************************
changed: [192.168.200.78]

PLAY [all] *************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
ok: [192.168.200.76]
ok: [192.168.200.77]
ok: [192.168.200.78]

TASK [start zookerper] *************************************************************************************************
changed: [192.168.200.76]
changed: [192.168.200.77]
changed: [192.168.200.78]

PLAY RECAP *************************************************************************************************************
192.168.200.76             : ok=12   changed=9    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
192.168.200.77             : ok=12   changed=9    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
192.168.200.78             : ok=12   changed=9    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

node验证

[root@node1 ~]# jps
10964 QuorumPeerMain
10997 Jps
[root@node2 ~]# jps
2530 Jps
2475 QuorumPeerMain
[root@node3 ~]# jps
2528 QuorumPeerMain
2586 Jps

配置ansible文件(kafka)

[root@ansible example]# mkdir -p server/{server1,server2,server3}
[root@ansible example]# cat server/server1/server.properties
broker.id=1

num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000

zookeeper.connect=192.168.200.76:2181,192.168.200.77:2181,192.168.200.78:2181
listeners = PLAINTEXT://192.168.200.76:9092

zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
[root@ansible example]# cat server/server2/server.properties
broker.id=2

num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000

zookeeper.connect=192.168.200.76:2181,192.168.200.77:2181,192.168.200.78:2181
listeners = PLAINTEXT://192.168.200.77:9092

zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
[root@ansible example]# cat server/server3/server.properties
broker.id=3

num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000

zookeeper.connect=192.168.200.76:2181,192.168.200.77:2181,192.168.200.78:2181
listeners = PLAINTEXT://192.168.200.78:9092

zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0

[root@ansible example]# cat cscc_install_kafka.yml
---
- hosts: all
  remote_user: root
  tasks:
    - name: copy kafka
      copy: src=kafka_2.11-1.1.1.tgz dest=/root/kafka_2.11-1.1.1.tgz
    - name: tar-kafka
      shell: tar -zxvf kafka_2.11-1.1.1.tgz
- hosts: node1
  remote_user: root
  tasks:
    - name: copy server1
      copy: src=server/server1/server.properties dest=/root/kafka_2.11-1.1.1/config
- hosts: node2
  remote_user: root
  tasks:
    - name: copy server2
      copy: src=server/server2/server.properties dest=/root/kafka_2.11-1.1.1/config
- hosts: node3
  remote_user: root
  tasks:
    - name: copy server3
      copy: src=server/server3/server.properties dest=/root/kafka_2.11-1.1.1/config
- hosts: all
  remote_user: root
  tasks:
    - name: copy kafka.sh
      copy: src=start_kafka.sh dest=/root/start_kafka.sh
    - name: start kafka
      shell: bash /root/start_kafka.sh


[root@ansible example]# cat start_kafka.sh
/root/kafka_2.11-1.1.1/bin/kafka-server-start.sh -daemon /root/kafka_2.11-1.1.1/config/server.properties

[root@ansible example]# ls
cscc_install_kafka.yml  ftp.repo              myid    start_kafka.sh  zookeeper-3.4.14.tar.gz
cscc_install.yml        kafka_2.11-1.1.1.tgz  server  zoo.cfg
[root@ansible example]#

检查剧本并执行

[root@ansible example]# ansible-playbook --syntax-check cscc_install_kafka.yml

playbook: cscc_install_kafka.yml

[root@ansible example]# ansible-playbook cscc_install_kafka.yml

PLAY [all] *************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
ok: [192.168.200.77]
ok: [192.168.200.76]
ok: [192.168.200.78]

TASK [copy kafka] ******************************************************************************************************
ok: [192.168.200.76]
ok: [192.168.200.78]
ok: [192.168.200.77]

TASK [tar-kafka] *******************************************************************************************************
[WARNING]: Consider using the unarchive module rather than running 'tar'.  If you need to use command because unarchive
is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get
rid of this message.
changed: [192.168.200.76]
changed: [192.168.200.78]
changed: [192.168.200.77]

PLAY [node1] ***********************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
ok: [192.168.200.76]

TASK [copy server1] ****************************************************************************************************
changed: [192.168.200.76]

PLAY [node2] ***********************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
ok: [192.168.200.77]

TASK [copy server2] ****************************************************************************************************
changed: [192.168.200.77]

PLAY [node3] ***********************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
ok: [192.168.200.78]

TASK [copy server3] ****************************************************************************************************
changed: [192.168.200.78]

PLAY [all] *************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************
ok: [192.168.200.76]
ok: [192.168.200.78]
ok: [192.168.200.77]

TASK [start kafka] *****************************************************************************************************
changed: [192.168.200.78]
changed: [192.168.200.77]
changed: [192.168.200.76]

PLAY RECAP *************************************************************************************************************
192.168.200.76             : ok=7    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
192.168.200.77             : ok=7    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
192.168.200.78             : ok=7    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

node验证

[root@node1 ~]# jps
19057 Jps
10964 QuorumPeerMain
18999 Kafka
[root@node2 ~]# jps
9589 Kafka
2475 QuorumPeerMain
9613 Jps
[root@node3 ~]# jps
2528 QuorumPeerMain
9318 Kafka
9342 Jps

如果要一键执行只需要把yml文件合并即可文章来源地址https://www.toymoban.com/news/detail-701230.html

到了这里,关于ansible部署zookeeper和kafka集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • zookeeper集群和kafka的相关概念就部署

    zookeeper集群和kafka的相关概念就部署

    目录 一、Zookeeper概述 1、Zookeeper 定义  2、Zookeeper 工作机制 3、Zookeeper 特点  4、Zookeeper 数据结构  5、Zookeeper 应用场景  (1)统一命名服务  (2)统一配置管理  (3)统一集群管理  (4)服务器动态上下线  (5)软负载均衡  6、Zookeeper选举机制 (1)第一次启动选举机制

    2024年02月14日
    浏览(11)
  • Zookeeper、Kafka集群与Filebeat+Kafka+ELK架构、部署实例

    Zookeeper、Kafka集群与Filebeat+Kafka+ELK架构、部署实例

    Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。 Zookeeper集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器。 全局数据一致:每个Server保

    2024年02月08日
    浏览(12)
  • zookeeper+kafka分布式消息队列集群的部署

    zookeeper+kafka分布式消息队列集群的部署

    目录 一、zookeeper 1.Zookeeper 定义 2.Zookeeper 工作机制 3.Zookeeper 特点 4.Zookeeper 数据结构 5.Zookeeper 应用场景 (1)统一命名服务 (2)统一配置管理 (3)统一集群管理 (4)服务器动态上下线 6.Zookeeper 选举机制 (1)第一次启动选举机制 (2)非第一次启动选举机制 7.部署zookeepe

    2024年02月14日
    浏览(12)
  • Helm方式部署 zookeeper+kafka 集群 ——2023.05

    Helm方式部署 zookeeper+kafka 集群 ——2023.05

    服务 版本 centos 7.9 kubernetes v1.20.15 helm v3.10.1 zookeeper 3.8.1 kafka 3.4.0 安装方式有两种,在线安装和离线安装,在线安装方便快捷,但是无法修改参数。由于需要修改配置,故本文采用离线安装方式。 2.1 在线安装zookeeper+kafka集群 1. 部署zookeeper集群 提示: 由于这个ApacheZookeeper集群

    2024年02月09日
    浏览(9)
  • kafka 3.5.0集群环境部署(使用自带的zookeeper)

    kafka 3.5.0集群环境部署(使用自带的zookeeper)

    管理界面包:kafka-manager-1.3.3.7.zip (链接) kafka二进制包:kafka_2.13-3.5.0.tgz (链接) java包:jdk-8u291-linux-x64.tar.gz (链接) 节点IP broker id 10.10.10.10 0 10.10.10.11 1 10.10.10.12 2 解压:tar -zxf jdk-8u291-linux-x64.tar.gz 编辑/etc/profile配置文件,文件末尾添加如下配置: 让配置生效source /etc/profile 查看

    2024年02月07日
    浏览(25)
  • 【简单认识zookeeper+kafka分布式消息队列集群的部署】

    【简单认识zookeeper+kafka分布式消息队列集群的部署】

    Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已

    2024年02月13日
    浏览(10)
  • 【ELK 使用指南 3】Zookeeper、Kafka集群与Filebeat+Kafka+ELK架构(附部署实例)

    【ELK 使用指南 3】Zookeeper、Kafka集群与Filebeat+Kafka+ELK架构(附部署实例)

    分布式应用管理框架 。 Zookeeper是个开源的,分布式的,为分布式框架提供协调服务的Apach项目。 主要用于解决分布式应用集群中 应用系统的一致性问题 。 作为 文件系统 ,用于注册各种分布式应用, 储存管理分布式应用的元信息 ; 作为 通知机制 ,如果节点或者服务本身的

    2024年02月08日
    浏览(23)
  • Linux多虚拟机集群化配置详解(Zookeeper集群、Kafka集群、Hadoop集群、HBase集群、Spark集群、Flink集群、Zabbix、Grafana部署)

    Linux多虚拟机集群化配置详解(Zookeeper集群、Kafka集群、Hadoop集群、HBase集群、Spark集群、Flink集群、Zabbix、Grafana部署)

    前面安装的软件,都是以单机模式运行的,学习大数据相关的软件部署,后续安装软件服务,大多数都是以集群化(多台服务器共同工作)模式运行的。所以,需要完成集群化环境的前置准备,包括创建多台虚拟机,配置主机名映射,SSH免密登录等等。 我们可以使用VMware提供

    2024年02月04日
    浏览(13)
  • Zookeeper 和 Kafka 工作原理及如何搭建 Zookeeper集群 + Kafka集群

    Zookeeper 和 Kafka 工作原理及如何搭建 Zookeeper集群 + Kafka集群

    目录 1 Zookeeper 1.1 Zookeeper 定义 1.2 Zookeeper 工作机制 1.3 Zookeeper 特点 1.4 Zookeeper 数据结构 1.5 Zookeeper 应用场景 1.6 Zookeeper 选举机制 2 部署 Zookeeper 集群 2.1 安装前准备 2.2 安装 Zookeeper 3 Kafka 3.1 为什么需要消息队列(MQ) 3.2 使用消息队列的好处 3.3 消息队列的两种模式 3.4 Kafka 定义

    2024年02月08日
    浏览(20)
  • Zookeeper集群 + Kafka集群

    Zookeeper集群 + Kafka集群

    目录 一、概述 (一)Zookeeper概述 1.Zookeeper 定义 2.Zookeeper 工作机制 3.Zookeeper 特点 (1)组成 (2)全局数据一致 (3)更新请求顺序执行 (4)数据更新原子性 (5)实时性 4.Zookeeper 数据结构 5.Zookeeper 应用场景 (1)统一命名服务 (2)统一配置管理 (3)统一集群管理 (4)服

    2024年01月24日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包