levonet.docker-zookeeper
Zookeeper Role
Set up and run Zookeeper in a Docker container using the official image zookeeper:latest
.
Role Variables
zookeeper_id
(required): This ID must be unique and should be a number between 1 and 255.zookeeper_servers
(required): This variable lets you list the servers in the Zookeeper setup. Each entry should be in the formatserver.id=host:port:port
, separated by spaces. In version 3.5, the format changed to:server.id=<address1>:<port1>:<port2>[:role];[<client port address>:]<client port>
Zookeeper Dynamic Reconfiguration.docker_zookeeper_name
(default: zookeeper): This name is used for the home folder path and the container name.docker_zookeeper_version
(default: latest)docker_zookeeper_image
(default: zookeeper:{{docker_zookeeper_version}})docker_zookeeper_expose
(default: [2181, 2888, 3888])docker_zookeeper_ports
(default: [2181, 2888, 3888]): These are the ports for the client, follower, and elections, respectively.docker_zookeeper_env
(optional): For more details, see Environment variables.docker_zookeeper_network_mode
(default: host): This connects the container to a network.docker_zookeeper_networks
(default: []): This is a list of the networks the container is part of.docker_zookeeper_log_driver
(default: json-file): This sets the logging driver.docker_zookeeper_log_options
(optional): This is a list of options specific to the logging driver. For more info, see Configure logging drivers.
Dependencies
docker
Example Playbook
In hosts
:
[zooservers]
10.10.10.1 zookeeper_id=1
10.10.10.2 zookeeper_id=2
10.10.10.3 zookeeper_id=3
In playbook:
- 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
Example of running a Zookeeper cluster on a single server
- 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
License
Author Information
This role was created by Marica Antonacci
Current maintainer Pavlo Bashynskyi
Informazioni sul progetto
Deploy official Zookeeper Docker container
Installa
ansible-galaxy install levonet.docker-zookeeper
Licenza
apache-2.0
Download
2.8k
Proprietario