ansible-playbook部署zookeeper集群

该博客展示了如何利用Ansible playbook自动化部署Zookeeper集群。内容包括配置文件、任务脚本和执行过程,涉及Java环境安装、Zookeeper软件包下载、创建软链接、配置文件复制、数据目录创建、主机ID设置以及启动Zookeeper服务等步骤。最终成功部署并在各节点上验证了Zookeeper服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ansible-playbook部署zookeeper集群

https://gitee.com/liangsircc/my-ansible-example/tree/main/zookeeper_cluster

目录结构

root@mq1:~/my-ansible-example/zookeeper_cluster# tree
.
├── ansible.cfg
├── hosts
├── roles
│   └── zknode
│       ├── files
│       │   └── zoo.cfg
│       ├── tasks
│       │   └── main.yml
│       └── vars
│           └── main.yml
├── zk.retry
└── zk.yml

zk.yml

---
- hosts: zk
  remote_user: root
  
  roles:
    - zknode

vars/main.yml

---
packages:
  - https://archive.apache.org/dist/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
packdir: /apps/
filename:
  zk: "{{ packages[0].partition('.tar')[0]|basename }}"

tasks/main.yml

---
- name: apt install packages
  apt: name="openjdk-8-jdk"
  when: ansible_distribution != "CentOS"
- name: yum  install packages
  dnf: name="java-1.8.0-openjdk"
  when: ansible_distribution == "CentOS"
- name: create directory
  file: path={{ packdir }} state=directory
- name: download zk packages
  unarchive: src={{ packages[0] }} dest={{ packdir }} copy=no
  register: var1
  until: var1 is succeeded
  retries: 5
- name: creat soft link
  file: src={{ packdir }}{{ filename.zk }} dest={{ packdir }}/zookeeper state=link
- name: copy cluster config file
  copy: src=zoo.cfg dest={{ packdir }}{{ filename.zk }}/conf/zoo.cfg
- name: create zk data directory
  file: path={{ packdir }}{{ filename.zk }}/data state=directory
- name: set host cluster id
  shell: "echo {{ ansible_eth0.ipv4.address.split('.')[-1] }} > {{ packdir }}{{ filename.zk }}/data/myid"
- name: start zk node
  shell: "{{ packdir }}{{ filename.zk }}/bin/zkServer.sh start"

执行脚本

root@mq1:~/my-ansible-example/zookeeper_cluster# ansible-playbook zk.yml 

PLAY [zk] ********************************************************************************************************************************************************************************

TASK [Gathering Facts] *******************************************************************************************************************************************************************
ok: [10.0.0.113]
ok: [10.0.0.112]
ok: [10.0.0.111]

TASK [zknode : apt install packages] *****************************************************************************************************************************************************
ok: [10.0.0.111]
ok: [10.0.0.113]
ok: [10.0.0.112]

TASK [zknode : yum  install packages] ****************************************************************************************************************************************************
skipping: [10.0.0.111]
skipping: [10.0.0.112]
skipping: [10.0.0.113]

TASK [zknode : create directory] *********************************************************************************************************************************************************
ok: [10.0.0.111]
ok: [10.0.0.113]
ok: [10.0.0.112]

TASK [zknode : download zk packages] *****************************************************************************************************************************************************
ok: [10.0.0.111]
changed: [10.0.0.113]
changed: [10.0.0.112]

TASK [zknode : creat soft link] **********************************************************************************************************************************************************
ok: [10.0.0.111]
changed: [10.0.0.112]
changed: [10.0.0.113]

TASK [zknode : copy cluster config file] *************************************************************************************************************************************************
changed: [10.0.0.111]
changed: [10.0.0.112]
changed: [10.0.0.113]

TASK [zknode : create zk data directory] *************************************************************************************************************************************************
changed: [10.0.0.111]
changed: [10.0.0.112]
changed: [10.0.0.113]

TASK [zknode : set host cluster id] ******************************************************************************************************************************************************
changed: [10.0.0.111]
changed: [10.0.0.113]
changed: [10.0.0.112]

TASK [zknode : start zk node] ************************************************************************************************************************************************************
changed: [10.0.0.111]
changed: [10.0.0.112]
changed: [10.0.0.113]

PLAY RECAP *******************************************************************************************************************************************************************************
10.0.0.111                 : ok=9    changed=4    unreachable=0    failed=0   
10.0.0.112                 : ok=9    changed=6    unreachable=0    failed=0   
10.0.0.113                 : ok=9    changed=6    unreachable=0    failed=0   

验证集群状态

在这里插入图片描述

Zookeeper的端口

3888是集群选举等信息通告的端口。
2888是进行数据同步的端口
2181是客户端连接服务端的端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清枫cc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值