levonet.docker-zookeeper

Zookeeper 角色

使用官方镜像 zookeeper:latest 在 Docker 容器中配置和启动 Zookeeper。

角色变量

  • zookeeper_id(必需):该 ID 在整个集群中必须是唯一的,值应在 1 到 255 之间。
  • zookeeper_servers(必需):此变量允许您指定 Zookeeper 集群中机器的列表。每个条目的格式为 server.id=host:port:port。条目之间用空格分隔。 在 3.5 版本中,语法发生了变化。服务器应指定为:server.id=<address1>:<port1>:<port2>[:role];[<client port address>:]<client port> Zookeeper 动态重新配置
  • docker_zookeeper_name(默认:zookeeper):这个名称用于主文件夹路径的名称和容器的名称。
  • docker_zookeeper_version(默认:latest)
  • docker_zookeeper_image(默认:zookeeper:{{docker_zookeeper_version}})
  • docker_zookeeper_expose(默认:[2181, 2888, 3888])
  • docker_zookeeper_ports(默认:[2181, 2888, 3888]):Zookeeper 客户端端口、跟随者端口和选举端口。
  • docker_zookeeper_env(可选):更多信息请查看 环境变量
  • docker_zookeeper_network_mode(默认:host):将容器连接到网络。
  • docker_zookeeper_networks(默认:[]):容器所属的网络列表。
  • docker_zookeeper_log_driver(默认:json-file):指定日志驱动程序。
  • docker_zookeeper_log_options(可选):与所选日志驱动程序相关的选项字典。有关详细信息,请查看 配置日志驱动程序

依赖项

  • docker

示例剧本

hosts 文件中:

[zooservers]
10.10.10.1 zookeeper_id=1
10.10.10.2 zookeeper_id=2
10.10.10.3 zookeeper_id=3

在剧本中:

- hosts: zooservers
  roles:
    - role: levonet.docker-zookeeper
      zookeeper_servers: "server.1=10.10.10.1:2888:3888 server.2=10.10.10.2:2888:3888 server.3=10.10.10.3:2888:3888"
      docker_zookeeper_name: "zookeeper-{{ zookeeper_id }}"
      docker_zookeeper_log_driver: syslog
      docker_zookeeper_log_options:
        syslog-facility: local0
        tag: "{{ docker_zookeeper_name }}"
      when: zookeeper_id is defined

在单个服务器上运行 Zookeeper 集群的示例

- hosts: all
  vars:
    zookeeper_host: "{{ hostvars[inventory_hostname]['ansible_default_ipv4']['address'] }}"
    docker_zookeeper_version: "3.5"
  roles:
  - role: levonet.docker-zookeeper
    docker_zookeeper_name: zoo-1
    docker_zookeeper_env:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=0.0.0.0:2788:3788;2181 server.2={{ zookeeper_host }}:2888:3888;2182 server.3={{ zookeeper_host }}:2988:3988;2183
    docker_zookeeper_expose: [2181, 2788, 3788]
    docker_zookeeper_ports:
    - 2181
  - role: levonet.docker-zookeeper
    docker_zookeeper_name: zoo-2
    docker_zookeeper_env:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1={{ zookeeper_host }}:2788:3788;2181 server.2=0.0.0.0:2888:3888;2182 server.3={{ zookeeper_host }}:2988:3988;2183
    docker_zookeeper_expose: [2182, 2888, 3888]
    docker_zookeeper_ports:
    - 2182
  - role: levonet.docker-zookeeper
    docker_zookeeper_name: zoo-3
    docker_zookeeper_env:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1={{ zookeeper_host }}:2788:3788;2181 server.2={{ zookeeper_host }}:2888:3888;2182 server.3=0.0.0.0:2988:3988;2183
    docker_zookeeper_expose: [2183, 2988, 3988]
    docker_zookeeper_ports:
    - 2183

许可证

Apache 许可证 v2

作者信息

此角色由 Marica Antonacci 创建
当前维护者 Pavlo Bashynskyi

关于项目

Deploy official Zookeeper Docker container

安装
ansible-galaxy install levonet.docker-zookeeper
许可证
apache-2.0
下载
2.8k
拥有者