Skip to content
Snippets Groups Projects
user avatar
Noah Fontes authored
Change-Id: I9e9c9f8f340e91ee7accc48b28a5a72256d9609f
d40cee21
History

Puppet Zookeeper Module

Installs and configures a Zookeeper client and/or Zookeeper server.

This module has been implemented and tested on Ubuntu Precise, and uses the Zookeeper package in upstream Debian/Ubuntu repositories.

Usage

class { 'zookeeper':
    hosts    => { 'zoo1.domain.org' => 1, 'zoo2.domain.org' => 2, 'zoo3.domain.org' => 3 },
    data_dir => '/var/lib/zookeeper',
}

The above setup should be used to configure a 3 node zookeeper cluster. You can include the above class on any of your nodes that will need to talk to the zookeeper cluster.

On the 3 zookeeper server nodes, you should also include:

class { 'zookeeper::server': }

This will ensure that the zookeeper server is running. Remember that this requires that you also include the zookeeper class as defined above as well as the server class.

On each of the defined zookeeper hosts, a myid file must be created that identifies the host in the zookeeper quorum. This myid number will be extracted from the hosts Hash keyed by the node's $fqdn. E.g. zoo1.domain.org's myid will be '1', zoo2.domain.org's myid will be 2, etc.

By default the zookeeper::server class will install a 'zookeeper-cleanup' cronjob that will run /usr/share/zookeeper/bin/zkCleanup.sh daily. You can adjust the number of old snapshots and logs you want to keep by setting the $cleanup_count parameter.