levonet.docker-zookeeper

Rôle Zookeeper

Configurer et démarrer Zookeeper dans un conteneur Docker en utilisant l'image officielle zookeeper:latest.

Variables du Rôle

  • zookeeper_id (obligatoire) : L'identifiant doit être unique au sein de l'ensemble et doit avoir une valeur comprise entre 1 et 255.
  • zookeeper_servers (obligatoire) : Cette variable vous permet de spécifier une liste de machines de l'ensemble Zookeeper. Chaque entrée a la forme server.id=host:port:port. Les entrées sont séparées par des espaces. Dans la version 3.5, la syntaxe a changé. Les serveurs doivent être spécifiés de cette manière : server.id=<adresse1>:<port1>:<port2>[:rôle];[<adresse du port client>:]<port client> Reconfiguration dynamique de Zookeeper.
  • docker_zookeeper_name (par défaut : zookeeper) : Ce nom est utilisé dans le chemin du dossier principal et dans le nom du conteneur.
  • docker_zookeeper_version (par défaut : latest)
  • docker_zookeeper_image (par défaut : zookeeper:{{docker_zookeeper_version}})
  • docker_zookeeper_expose (par défaut : [2181, 2888, 3888])
  • docker_zookeeper_ports (par défaut : [2181, 2888, 3888]) Les ports pour le client Zookeeper, le port follower, et le port d'élection respectivement.
  • docker_zookeeper_env (optionnel) : Voir Variables d'environnement pour plus d'informations.
  • docker_zookeeper_network_mode (par défaut : host) : Connecter le conteneur à un réseau.
  • docker_zookeeper_networks (par défaut : []) : Liste des réseaux auxquels le conteneur appartient.
  • docker_zookeeper_log_driver (par défaut : json-file) : Spécifiez le pilote de journalisation.
  • docker_zookeeper_log_options (optionnel) : Dictionnaire d'options spécifiques au pilote de journalisation choisi. Voir Configurer les pilotes de journalisation pour des détails.

Dépendances

  • docker

Exemple de Playbook

Dans hosts :

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

Dans le 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

Un exemple de fonctionnement d'un cluster Zookeeper sur un seul serveur

- 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

Licence

Licence Apache v2

Informations sur l'auteur

Ce rôle a été créé par Marica Antonacci
Mainteneur actuel Pavlo Bashynskyi

À propos du projet

Deploy official Zookeeper Docker container

Installer
ansible-galaxy install levonet.docker-zookeeper
Licence
apache-2.0
Téléchargements
2.8k
Propriétaire