This folder contains a script for installing Exhibitor, a supervisor system
for ZooKeeper that provides a number of features, including starting the ZooKeeper process, restarting the process if
it fails, performing periodic cleanup of ZooKeeper's log directory, and offering a GUI for viewing ZooKeeper nodes
This script has been tested on the following operating systems:
Amazon Linux
Ubuntu
There is a good chance it will work on Debian, CentOS, and RHEL as well, but our automated testing for this
module does not cover these other distros at the moment.
{"treedata":{"name":"root","toggled":true,"children":[{"name":".circleci","children":[{"name":"config.yml","path":".circleci/config.yml","sha":"0601af72df2ba4b063a3f85a64f62133caed2aa9"}]},{"name":".gitignore","path":".gitignore","sha":"680445c9f2a64093b79e862110e7ba5a1631396b"},{"name":".pre-commit-config.yaml","path":".pre-commit-config.yaml","sha":"a231a87f4d53a3db368ba9a52c2ce4c72665be6c"},{"name":"CODEOWNERS","path":"CODEOWNERS","sha":"4be01a6334d39aa5bf6abe6baae701f5e2a8c5ac"},{"name":"LICENSE.txt","path":"LICENSE.txt","sha":"689cf10ec98e3297a75bdd9b9fb5da10b7a675f8"},{"name":"README.md","path":"README.md","sha":"a45d4c5609fff85a2c844f45a078db4b6ad7f4b7"},{"name":"examples","children":[{"name":"install-open-jdk","children":[{"name":"main.tf","path":"examples/install-open-jdk/main.tf","sha":"d282547d6809ce3f163dcef3e6bb774ae9abb300"},{"name":"outputs.tf","path":"examples/install-open-jdk/outputs.tf","sha":"6d1b9b915cdb10c8ba114d61d0c47f0babd2ebe8"},{"name":"packer","children":[{"name":"build.json","path":"examples/install-open-jdk/packer/build.json","sha":"a52ffa21b70d809026886f0c539de5340159102d"}]},{"name":"vars.tf","path":"examples/install-open-jdk/vars.tf","sha":"d1eba93458ba1cfdf6b588d968e558f756087e9f"}]},{"name":"zookeeper-ami","children":[{"name":"README.md","path":"examples/zookeeper-ami/README.md","sha":"05c95c33022491de1a986d0aca53019913a1f44a"},{"name":"configure-image.sh","path":"examples/zookeeper-ami/configure-image.sh","sha":"1284a3e34391d6d45e93ba03a325accad284c496"},{"name":"docker-compose.yml","path":"examples/zookeeper-ami/docker-compose.yml","sha":"4a19a656e2f87a6cbf054f03e561af25293cc50e"},{"name":"mock","children":[{"name":"README.md","path":"examples/zookeeper-ami/mock/README.md","sha":"281f2d6e28652e1269003052189206637f7a39e1"},{"name":"bash-commons","children":[{"name":"aws.sh","path":"examples/zookeeper-ami/mock/bash-commons/aws.sh","sha":"3410f13c4a89f2b9ebadef09c678a44471b57426"}]},{"name":"modules","children":[{"name":"attach-eni","path":"examples/zookeeper-ami/mock/modules/attach-eni","sha":"da052caea4586b27c2dc13e521092e9403fcc327"},{"name":"mount-ebs-volume","path":"examples/zookeeper-ami/mock/modules/mount-ebs-volume","sha":"e0171fef05dbd120dc8668ceeca176cc5c0dfce4"}]},{"name":"user-data","children":[{"name":"user-data.sh","path":"examples/zookeeper-ami/mock/user-data/user-data.sh","sha":"43a641aa2937ba6f7c07c8391c947de2f65b7920"}]}]},{"name":"zookeeper.json","path":"examples/zookeeper-ami/zookeeper.json","sha":"8c4b84869fd40a1db9bc8bef61d6b3a19b3762c0"}]},{"name":"zookeeper-cluster","children":[{"name":"README.md","path":"examples/zookeeper-cluster/README.md","sha":"eda7e80c820a57b327129083f52b73e0713ae6b3"},{"name":"main.tf","path":"examples/zookeeper-cluster/main.tf","sha":"0c30465554c11d219c534ea4dfc3ddd2cf1360b2"},{"name":"outputs.tf","path":"examples/zookeeper-cluster/outputs.tf","sha":"b975f1a72a486b619e310e8140110b84dfc29085"},{"name":"user-data","children":[{"name":"user-data.sh","path":"examples/zookeeper-cluster/user-data/user-data.sh","sha":"e9791f80ed83847ba70305ce8ae5ef069f5c650a"}]},{"name":"vars.tf","path":"examples/zookeeper-cluster/vars.tf","sha":"ad3d6ba8d303e025fa8afd2a618510deeafd2e20"}]}]},{"name":"modules","children":[{"name":"bash-commons","children":[{"name":"README.md","path":"modules/bash-commons/README.md","sha":"36085f6f3d8ce299f64aa01f05761f60037a307b"},{"name":"install.sh","path":"modules/bash-commons/install.sh","sha":"aef9fac2b81593e7fe9bbc54c775d77883b78904"},{"name":"lib","children":[{"name":"assert.sh","path":"modules/bash-commons/lib/assert.sh","sha":"46db8af49acb3e8d707447827dc614740add6a63"},{"name":"aws.sh","path":"modules/bash-commons/lib/aws.sh","sha":"3f14d36e2c7b57c91be34bdf30fff4f400a7d1aa"},{"name":"log.sh","path":"modules/bash-commons/lib/log.sh","sha":"66f936873d4d104c94693d3e68790cc0b9d36c63"},{"name":"os.sh","path":"modules/bash-commons/lib/os.sh","sha":"435e592c0e992f2266247a2da797a0eefc429f35"},{"name":"strings.sh","path":"modules/bash-commons/lib/strings.sh","sha":"19dbfe630edfbe71e7c8c1beee3d50fffdd5b1e6"}]}]},{"name":"exhibitor-shared-config","children":[{"name":"README.md","path":"modules/exhibitor-shared-config/README.md","sha":"736686bba5c252be2acf0eb14a00dd59a23d72a0"},{"name":"main.tf","path":"modules/exhibitor-shared-config/main.tf","sha":"d5ad468ec600564e4d17608aa318c470a8b3d676"},{"name":"outputs.tf","path":"modules/exhibitor-shared-config/outputs.tf","sha":"f25b449e17b3d611d5248bd58499219511792c79"},{"name":"vars.tf","path":"modules/exhibitor-shared-config/vars.tf","sha":"627fa84d0ef4c7c765e312acc8d9ca775688ed4b"}]},{"name":"install-exhibitor","children":[{"name":"README.md","path":"modules/install-exhibitor/README.md","sha":"95b622d4e7ed592c3a1c042c387b3d1ece4c0747","toggled":true},{"name":"install.sh","path":"modules/install-exhibitor/install.sh","sha":"e6041bd754a016778e56a18c9bff3108f7d84470"},{"name":"pom.xml","path":"modules/install-exhibitor/pom.xml","sha":"e5cca292196cdaa093cc484465eb5bc2d48ed618"},{"name":"zookeeper-log4j.properties","path":"modules/install-exhibitor/zookeeper-log4j.properties","sha":"80e3ae28555ed63b5a74d127796ff3f2adfce223"}],"toggled":true},{"name":"install-open-jdk","children":[{"name":"README.md","path":"modules/install-open-jdk/README.md","sha":"ecf31489edfe0016cd78d7bf6225056dd3981173"},{"name":"install.sh","path":"modules/install-open-jdk/install.sh","sha":"63f6788b1d716303f54a865c6a03f659d2a60949"}]},{"name":"install-oracle-jdk","children":[{"name":"README.md","path":"modules/install-oracle-jdk/README.md","sha":"1e4be20a4464add964f1311b17da9e4e069bd2a8"},{"name":"install.sh","path":"modules/install-oracle-jdk/install.sh","sha":"681d9298e1c0809e0a5166673d499aea827539f1"}]},{"name":"install-supervisord","children":[{"name":"README.md","path":"modules/install-supervisord/README.md","sha":"5575c3cb66fcf12358a924249d5fec9febd275c2"},{"name":"install.sh","path":"modules/install-supervisord/install.sh","sha":"9a29cb5400e16f30a203e4e4d617dd2e51360594"},{"name":"supervisor-initd-script.sh","path":"modules/install-supervisord/supervisor-initd-script.sh","sha":"171b91613e98ab2bd10282025caff1707918c95a"},{"name":"supervisor-systemd-unit.service","path":"modules/install-supervisord/supervisor-systemd-unit.service","sha":"76b13943df6585299f93c101873bdfd81ca3fa19"},{"name":"supervisord.conf","path":"modules/install-supervisord/supervisord.conf","sha":"d96beb0ca9a16279ed1bdf74cbb6516275d85085"}]},{"name":"install-zookeeper","children":[{"name":"README.md","path":"modules/install-zookeeper/README.md","sha":"25009f48b77b50b22a6f3deae8235d640d457728"},{"name":"install.sh","path":"modules/install-zookeeper/install.sh","sha":"ff633d56374449a32523458932a772cc4f260ebb"},{"name":"security","children":[{"name":"zookeeper.KEYS","path":"modules/install-zookeeper/security/zookeeper.KEYS","sha":"f23552bd9489de0f229bb4bb27dfb6a0376904f4"},{"name":"zookeeper.asc","path":"modules/install-zookeeper/security/zookeeper.asc","sha":"de701fc5a9b18af3095d32de998b95d7f25667ef"}]}]},{"name":"run-exhibitor","children":[{"name":"README.md","path":"modules/run-exhibitor/README.md","sha":"473183248833afc4c2912d6abe1ab13ebc79f91d"},{"name":"bin","children":[{"name":"run-exhibitor","path":"modules/run-exhibitor/bin/run-exhibitor","sha":"3896b59705311166ff4320a166d586fcfad7a87b"}]},{"name":"install.sh","path":"modules/run-exhibitor/install.sh","sha":"2526ea9044211107baa2e01da2a27c55ab884ff7"}]},{"name":"run-health-checker","children":[{"name":"README.md","path":"modules/run-health-checker/README.md","sha":"4610cc44b430ad38e7ddf4475bcc2609bdbd5fbc"},{"name":"bin","children":[{"name":"check-zookeeper","path":"modules/run-health-checker/bin/check-zookeeper","sha":"c952376818aa1b3c08e6ce54c6b7b44811911696"},{"name":"run-health-checker","path":"modules/run-health-checker/bin/run-health-checker","sha":"3b663fa426632481b1e618285ef983cffd395809"}]},{"name":"install.sh","path":"modules/run-health-checker/install.sh","sha":"dc8cbdf7ef4a8e1feb96613adfd96bf5c7c1a29e"}]},{"name":"zookeeper-cluster","children":[{"name":"README.md","path":"modules/zookeeper-cluster/README.md","sha":"0567ae6a33387ef0a8afe59bad3b0bc6933d6b37"},{"name":"main.tf","path":"modules/zookeeper-cluster/main.tf","sha":"f47a0165e0698da1247b41746cb6dae3d0fe9483"},{"name":"outputs.tf","path":"modules/zookeeper-cluster/outputs.tf","sha":"424dada690378a4bd7aa8e903c61ad77746ebf99"},{"name":"vars.tf","path":"modules/zookeeper-cluster/vars.tf","sha":"8474ebfa78cc045581dbea258aba97b7fea65b42"}]},{"name":"zookeeper-iam-permissions","children":[{"name":"README.md","path":"modules/zookeeper-iam-permissions/README.md","sha":"2399cd6680bfbf24b2b13cca69048d06d6afc5ed"},{"name":"main.tf","path":"modules/zookeeper-iam-permissions/main.tf","sha":"f430c2d2634e49c0981545bf9f42930c4c1ba954"},{"name":"vars.tf","path":"modules/zookeeper-iam-permissions/vars.tf","sha":"9c3a5c00d0591fd79c9e63b6c8bf753cc14cda61"}]},{"name":"zookeeper-security-group-rules","children":[{"name":"README.md","path":"modules/zookeeper-security-group-rules/README.md","sha":"dbc968a1d10180608a86efe6adfdb83f658be2b0"},{"name":"main.tf","path":"modules/zookeeper-security-group-rules/main.tf","sha":"f337a48713e1e19889b8cebb8bc4dec1238b303b"},{"name":"vars.tf","path":"modules/zookeeper-security-group-rules/vars.tf","sha":"6319feab9b2eb4407d562436d716e64ef57b17fd"}]}],"toggled":true},{"name":"terraform-cloud-enterprise-private-module-registry-placeholder.tf","path":"terraform-cloud-enterprise-private-module-registry-placeholder.tf","sha":"ae586c0fe830819580e1009d41a9074f16e65bed"},{"name":"test","children":[{"name":"README.md","path":"test/README.md","sha":"a3b551ce00165ed25029229aae7a5ac5d9c33f91"},{"name":"go.mod","path":"test/go.mod","sha":"9b3f35c3d45943de5d75986b7972db8c04099233"},{"name":"go.sum","path":"test/go.sum","sha":"92cb5f705fd11050ff73c4778011a9ebc73330d8"},{"name":"open_jdk_test.go","path":"test/open_jdk_test.go","sha":"18e6c2f4c4e5c5a22ae4c85fb1934d6275858fb9"},{"name":"validation","children":[{"name":"validate_all_modules_and_examples_test.go","path":"test/validation/validate_all_modules_and_examples_test.go","sha":"74c928d0cbc2914e5cd708277bd857cb2375b660"}]},{"name":"zookeeper_cluster_test.go","path":"test/zookeeper_cluster_test.go","sha":"84fc388e44cd82e7cf52a5a8011ea2f4a37a7571"}]}]},"detailsContent":"<h1 class=\"preview__body--title\" id=\"install-exhibitor\">Install Exhibitor</h1><div class=\"preview__body--border\"></div><p>This folder contains a script for installing <a href=\"https://github.com/soabase/exhibitor/\" class=\"preview__body--description--blue\" target=\"_blank\">Exhibitor</a>, a supervisor system\nfor ZooKeeper that provides a number of features, including starting the ZooKeeper process, restarting the process if\nit fails, performing periodic cleanup of ZooKeeper's log directory, and offering a GUI for viewing ZooKeeper nodes</p>\n<p>This script has been tested on the following operating systems:</p>\n<ul>\n<li>Amazon Linux</li>\n<li>Ubuntu</li>\n</ul>\n<p>There is a good chance it will work on Debian, CentOS, and RHEL as well, but our automated testing for this\nmodule does not cover these other distros at the moment.</p>\n<h2 class=\"preview__body--subtitle\" id=\"quick-start\">Quick start</h2>\n<p>The easiest way to use this module is with the <a href=\"/repos/gruntwork-installer\" class=\"preview__body--description--blue\">Gruntwork Installer</a>:</p>\n<pre>gruntwork-install \\\n -<span class=\"ruby\">-<span class=\"hljs-class\"><span class=\"hljs-keyword\">module</span>-<span class=\"hljs-title\">name</span> \"<span class=\"hljs-title\">install</span>-<span class=\"hljs-title\">exhibitor</span>\" \\</span>\n</span> -<span class=\"ruby\">-repo <span class=\"hljs-string\">\"https://github.com/gruntwork-io/terraform-aws-zookeeper\"</span> \\\n</span> -<span class=\"ruby\">-tag <span class=\"hljs-string\">\"v0.0.4\"</span>\n</span></pre>\n<p>We recommend running this module, along with <a href=\"/repos/v0.11.1/package-zookeeper/modules/install-zookeeper\" class=\"preview__body--description--blue\">install-zookeeper</a>, as part of a\n<a href=\"https://www.packer.io/\" class=\"preview__body--description--blue\" target=\"_blank\">Packer</a> template to create an <a href=\"http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html\" class=\"preview__body--description--blue\" target=\"_blank\">Amazon Machine Image\n(AMI)</a> (see the <a href=\"/repos/v0.11.1/package-zookeeper/examples/zookeeper-ami\" class=\"preview__body--description--blue\">zookeeper-ami\nexample</a> for a fully-working sample code). You can then deploy the AMI using the\n<a href=\"/repos/v0.11.1/package-zookeeper/modules/zookeeper-cluster\" class=\"preview__body--description--blue\">zookeeper-cluster module</a> (see the <a href=\"/repos/v0.11.1/package-zookeeper/examples/zookeeper-cluster\" class=\"preview__body--description--blue\">zookeeper-cluster\nexample</a> for fully-working sample code).</p>\n<h2 class=\"preview__body--subtitle\" id=\"command-line-arguments\">Command line Arguments</h2>\n<p>The <code>install-exhibitor</code> module accepts the following arguments, all optional:</p>\n<ul>\n<li><code>--version</code>: The version of Exhibitor to install.</li>\n<li><code>--install-dir</code>: The directory where to install Exhibitor. Default: <code>/opt/exhibitor</code>.</li>\n<li><code>--user</code>: The user who will be set as the owner of <code>--install-dir</code>. Default: <code>zookeeper</code>.</li>\n</ul>\n<p>If you're using <code>gruntwork-install</code> to run this module, you can pass these arguments using <code>--module-param</code> arguments.\nExample:</p>\n<pre>gruntwork-install \\\n -<span class=\"ruby\">-<span class=\"hljs-class\"><span class=\"hljs-keyword\">module</span>-<span class=\"hljs-title\">name</span> \"<span class=\"hljs-title\">install</span>-<span class=\"hljs-title\">exhibitor</span>\" \\</span>\n</span> -<span class=\"ruby\">-repo <span class=\"hljs-string\">\"https://github.com/gruntwork-io/terraform-aws-zookeeper\"</span> \\\n</span> -<span class=\"ruby\">-tag <span class=\"hljs-string\">\"v0.0.4\"</span> \\\n</span> -<span class=\"ruby\">-<span class=\"hljs-class\"><span class=\"hljs-keyword\">module</span>-<span class=\"hljs-title\">param</span> \"<span class=\"hljs-title\">version</span>=1.5.6\"</span>\n</span></pre>\n","repoName":"package-zookeeper","repoRef":"v0.11.1","serviceDescriptor":{"serviceName":"Apache ZooKeeper","serviceRepoName":"package-zookeeper","serviceRepoOrg":"gruntwork-io","cloudProviders":["aws"],"description":"Deploy an Apache ZooKeeper cluster. Supports automatic bootstrap, Exhibitor, zero-downtime rolling deployment, and auto healing.","imageUrl":"zookeeper.png","licenseType":"subscriber","technologies":["Terraform","Bash"],"compliance":[],"tags":[""]},"serviceCategoryName":"NoSQL","fileName":"README.md","filePath":"/modules/install-exhibitor","title":"Repo Browser: Apache ZooKeeper","description":"Browse the repos in the Gruntwork Infrastructure as Code Library."}