Merge branch 'master' into ha (v0.12)
authorWayne Schneider <wayne@indexdata.com>
Thu, 4 Aug 2016 21:45:20 +0000 (16:45 -0500)
committerWayne Schneider <wayne@indexdata.com>
Thu, 4 Aug 2016 21:46:44 +0000 (16:46 -0500)
16 files changed:
conf/zookeeper/log4j.properties [new file with mode: 0644]
conf/zookeeper/zoo.cfg [new file with mode: 0644]
debian/.gitignore
debian/control
debian/masterkey-lui-zookeeper.default [new file with mode: 0755]
debian/masterkey-lui-zookeeper.dirs [new file with mode: 0644]
debian/masterkey-lui-zookeeper.init [new file with mode: 0755]
debian/masterkey-lui-zookeeper.install [new file with mode: 0644]
debian/masterkey-lui-zookeeper.postinst [new file with mode: 0644]
debian/masterkey-lui-zookeeper.postrm [new file with mode: 0644]
debian/masterkey-lui-zookeeper.preinst [new file with mode: 0644]
debian/masterkey-lui-zookeeper.prerm [new file with mode: 0644]
dev-deploy-ha/Vagrantfile [new file with mode: 0644]
dev-deploy-ha/solr.yml [new file with mode: 0644]
dev-deploy-ha/zookeeper.yml [new file with mode: 0644]
dist/zookeeper-3.4.6.tar.gz [new file with mode: 0644]

diff --git a/conf/zookeeper/log4j.properties b/conf/zookeeper/log4j.properties
new file mode 100644 (file)
index 0000000..f5ec35d
--- /dev/null
@@ -0,0 +1,58 @@
+# Define some default values that can be overridden by system properties
+zookeeper.root.logger=INFO, CONSOLE
+zookeeper.console.threshold=INFO
+zookeeper.log.dir=/var/log/masterkey/lui
+zookeeper.log.file=zookeeper.log
+zookeeper.log.threshold=DEBUG
+zookeeper.tracelog.dir=/var/log/masterkey/lui
+zookeeper.tracelog.file=zookeeper_trace.log
+
+#
+# ZooKeeper Logging Configuration
+#
+
+# Format is "<default threshold> (, <appender>)+
+
+# DEFAULT: console appender only
+log4j.rootLogger=${zookeeper.root.logger}
+
+# Example with rolling log file
+#log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE
+
+# Example with rolling log file and tracing
+#log4j.rootLogger=TRACE, CONSOLE, ROLLINGFILE, TRACEFILE
+
+#
+# Log INFO level and above messages to the console
+#
+log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
+log4j.appender.CONSOLE.Threshold=${zookeeper.console.threshold}
+log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
+log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n
+
+#
+# Add ROLLINGFILE to rootLogger to get log file output
+#    Log DEBUG level and above messages to a log file
+log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender
+log4j.appender.ROLLINGFILE.Threshold=${zookeeper.log.threshold}
+log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/${zookeeper.log.file}
+
+# Max log file size of 10MB
+log4j.appender.ROLLINGFILE.MaxFileSize=10MB
+# uncomment the next line to limit number of backup files
+#log4j.appender.ROLLINGFILE.MaxBackupIndex=10
+
+log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout
+log4j.appender.ROLLINGFILE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n
+
+
+#
+# Add TRACEFILE to rootLogger to get log file output
+#    Log DEBUG level and above messages to a log file
+log4j.appender.TRACEFILE=org.apache.log4j.FileAppender
+log4j.appender.TRACEFILE.Threshold=TRACE
+log4j.appender.TRACEFILE.File=${zookeeper.tracelog.dir}/${zookeeper.tracelog.file}
+
+log4j.appender.TRACEFILE.layout=org.apache.log4j.PatternLayout
+### Notice we are including log4j's NDC here (%x)
+log4j.appender.TRACEFILE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L][%x] - %m%n
diff --git a/conf/zookeeper/zoo.cfg b/conf/zookeeper/zoo.cfg
new file mode 100644 (file)
index 0000000..dc53f64
--- /dev/null
@@ -0,0 +1,8 @@
+tickTime=2000
+dataDir=/var/lib/masterkey/lui/zookeeper
+clientPort=2181
+# initLimit=5
+# syncLimit=2
+# server.1=zookeeper1:2888:3888
+# server.2=zookeeper2:2888:3888
+# server.3=zookeeper3:2888:3888
index 4c37f87..4f211f1 100644 (file)
@@ -1,3 +1,4 @@
 files
 *.substvars
 *.log
+*.debhelper
index 14aa8b5..fb41250 100644 (file)
@@ -25,3 +25,12 @@ Description: Local Unified Index (Solr)
  The Local Unified Index is a index that contains multiple logical indexes 
  (subdatabases). The underlying index is a Solr/Lucene 6 index configured 
  to use a specific LUI schema.
+
+Package: masterkey-lui-zookeeper
+Architecture: all
+Depends: openjdk-7-jdk, ${misc:Depends}
+Description: Local Unified Index (Zookeeper)
+ The Local Unified Index is a index that contains multiple logical indexes 
+ (subdatabases). The underlying index is a Solr/Lucene 5 index configured 
+ to use a specific LUI schema. This package provides an installation
+ of Apache Zookeeper suitable for a lui-solr cluster.
diff --git a/debian/masterkey-lui-zookeeper.default b/debian/masterkey-lui-zookeeper.default
new file mode 100755 (executable)
index 0000000..3b6d4bd
--- /dev/null
@@ -0,0 +1,118 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This script should be sourced into other zookeeper
+# scripts to setup the env variables
+
+# We use ZOOCFGDIR if defined,
+# otherwise we use /etc/zookeeper
+# or the conf directory that is
+# a sibling of this script's directory
+
+ZOOBINDIR=/usr/share/masterkey/lui/zookeeper/bin
+ZOOKEEPER_PREFIX="${ZOOBINDIR}/.."
+ZOOCFGDIR=/etc/masterkey/lui/zookeeper
+ZOO_LOG_DIR=/var/log/masterkey/lui
+ZOOPIDDIR=/var/lib/masterkey/lui
+ZOOPIDFILE=${ZOOPIDDIR}/zookeeper_server.pid
+
+JMXDISABLE=1
+JVMFLAGS="-Xmx512m -Xms256m"
+
+if [ "x$ZOOCFGDIR" = "x" ]
+then
+  if [ -e "${ZOOKEEPER_PREFIX}/conf" ]; then
+    ZOOCFGDIR="$ZOOBINDIR/../conf"
+  else
+    ZOOCFGDIR="$ZOOBINDIR/../etc/zookeeper"
+  fi
+fi
+
+if [ "x$ZOOCFG" = "x" ]
+then
+    ZOOCFG="zoo.cfg"
+fi
+
+ZOOCFG="$ZOOCFGDIR/$ZOOCFG"
+
+if [ -f "$ZOOCFGDIR/java.env" ]
+then
+    . "$ZOOCFGDIR/java.env"
+fi
+
+if [ "x${ZOO_LOG_DIR}" = "x" ]
+then
+    ZOO_LOG_DIR="."
+fi
+
+if [ "x${ZOO_LOG4J_PROP}" = "x" ]
+then
+    ZOO_LOG4J_PROP="INFO,CONSOLE"
+fi
+
+if [ "$JAVA_HOME" != "" ]; then
+  JAVA="$JAVA_HOME/bin/java"
+else
+  JAVA=java
+fi
+
+#add the zoocfg dir to classpath
+CLASSPATH="$ZOOCFGDIR:$CLASSPATH"
+
+for i in "$ZOOBINDIR"/../src/java/lib/*.jar
+do
+    CLASSPATH="$i:$CLASSPATH"
+done
+
+#make it work in the binary package
+if [ -e "${ZOOKEEPER_PREFIX}"/share/zookeeper/zookeeper-*.jar ]; then
+  for i in "$ZOOKEEPER_PREFIX"/share/zookeeper/*.jar
+  do
+    CLASSPATH="$i:$CLASSPATH"
+  done
+else
+  #release tarball format
+  for i in "$ZOOBINDIR"/../zookeeper-*.jar
+  do
+    CLASSPATH="$i:$CLASSPATH"
+  done
+  for i in "$ZOOBINDIR"/../lib/*.jar
+  do
+    CLASSPATH="$i:$CLASSPATH"
+  done
+fi
+
+#make it work for developers
+for d in "$ZOOBINDIR"/../build/lib/*.jar
+do
+   CLASSPATH="$d:$CLASSPATH"
+done
+
+#make it work for developers
+CLASSPATH="$ZOOBINDIR/../build/classes:$CLASSPATH"
+
+case "`uname`" in
+    CYGWIN*) cygwin=true ;;
+    *) cygwin=false ;;
+esac
+
+if $cygwin
+then
+    CLASSPATH=`cygpath -wp "$CLASSPATH"`
+fi
+
+#echo "CLASSPATH=$CLASSPATH"
diff --git a/debian/masterkey-lui-zookeeper.dirs b/debian/masterkey-lui-zookeeper.dirs
new file mode 100644 (file)
index 0000000..db0d14d
--- /dev/null
@@ -0,0 +1,6 @@
+etc/default
+usr/share/masterkey/lui/dist
+usr/share/doc/masterkey-lui-zookeeper
+etc/masterkey/lui/zookeeper
+var/log/masterkey/lui
+var/lib/masterkey/lui/zookeeper
diff --git a/debian/masterkey-lui-zookeeper.init b/debian/masterkey-lui-zookeeper.init
new file mode 100755 (executable)
index 0000000..71a6b18
--- /dev/null
@@ -0,0 +1,139 @@
+#! /bin/sh
+
+# init script for lui-zookeeper
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+### BEGIN INIT INFO
+# Provides:            lui-zookeeper
+# Required-Start:      $remote_fs $syslog
+# Required-Stop:       $remote_fs $syslog
+# Default-Start:       2 3 4 5
+# Default-Stop:                
+# Short-Description:   Apache ZooKeeper server for Index Data Local Unified Index (LUI)
+### END INIT INFO
+
+set -e
+
+# /etc/init.d/lui-zookeeper: start and stop the Apache ZooKeeper daemon
+
+umask 022
+
+. /etc/default/masterkey-lui-zookeeper
+
+. /lib/lsb/init-functions
+
+check_privsep_dir() {
+    # Create the PrivSep empty dir if necessary
+    if [ ! -d ${ZOOPIDDIR} ]; then
+       mkdir -p ${ZOOPIDDIR}
+        chown lui-solr:lui-solr ${ZOOPIDDIR}
+       chmod 0775 ${ZOOPIDDIR} 
+    fi
+}
+
+# Are we running from init?
+run_by_init() {
+    ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
+}
+
+check_for_no_start() {
+    # forget it if we're trying to start, and /etc/masterkey/lui/zookeeper/zookeeper_not_to_be_run exists
+    if [ -e /etc/masterkey/lui/zookeeper/zookeeper_not_to_be_run ]; then 
+       if [ "$1" = log_end_msg ]; then
+           log_end_msg 0
+       fi
+       if ! run_by_init; then
+           log_action_msg "Apache ZooKeeper server not in use (/etc/zookeeper/zookeeper_not_to_be_run)"
+       fi
+       exit 0
+    fi
+}
+
+export PATH="${PATH:+$PATH:}/usr/sbin:/usr/bin"
+
+case "$1" in
+  start)
+       check_for_no_start
+       check_privsep_dir
+       log_daemon_msg "Starting Apache ZooKeeper server" "zookeeper"
+       if start-stop-daemon --start --quiet --oknodo --pidfile ${ZOOPIDFILE} -c lui-solr -x ${ZOOKEEPER_PREFIX}/bin/zkServer.sh start; then
+           log_end_msg 0
+       else
+           log_end_msg 1
+       fi
+       ;;
+  stop)
+       log_daemon_msg "Stopping Apache ZooKeeper server" "zookeeper"
+       if start-stop-daemon --stop --quiet --oknodo --pidfile ${ZOOPIDFILE}; then
+           log_end_msg 0
+       else
+           log_end_msg 1
+       fi
+       ;;
+
+  restart)
+       check_privsep_dir
+       log_daemon_msg "Restarting Apache ZooKeeper server" "zookeeper"
+       start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile ${ZOOPIDFILE}
+       check_for_no_start log_end_msg
+       if start-stop-daemon --start --quiet --oknodo --pidfile ${ZOOPIDFILE} -c lui-solr -x ${ZOOKEEPER_PREFIX}/bin/zkServer.sh start; then
+           log_end_msg 0
+       else
+           log_end_msg 1
+       fi
+       ;;
+
+  try-restart)
+       check_privsep_dir
+       log_daemon_msg "Restarting Apache ZooKeeper server" "zookeeper"
+       set +e
+       start-stop-daemon --stop --quiet --retry 30 --pidfile ${ZOOPIDFILE}
+       RET="$?"
+       set -e
+       case $RET in
+           0)
+               # old daemon stopped
+               check_for_no_start log_end_msg
+               if start-stop-daemon --start --quiet --oknodo --pidfile ${ZOOPIDFILE} -c lui-solr -x ${ZOOKEEPER_PREFIX}/bin/zkServer.sh start; then
+                   log_end_msg 0
+               else
+                   log_end_msg 1
+               fi
+               ;;
+           1)
+               # daemon not running
+               log_progress_msg "(not running)"
+               log_end_msg 0
+               ;;
+           *)
+               # failed to stop
+               log_progress_msg "(failed to stop)"
+               log_end_msg 1
+               ;;
+       esac
+       ;;
+
+  status)
+       status_of_proc -p ${ZOOPIDFILE} ${JAVA_HOME}/bin/java zookeeper && exit 0 || exit $?
+       ;;
+
+  *)
+       log_action_msg "Usage: /etc/init.d/lui-zookeeper {start|stop|restart|try-restart|status}"
+       exit 1
+esac
+
+exit 0
diff --git a/debian/masterkey-lui-zookeeper.install b/debian/masterkey-lui-zookeeper.install
new file mode 100644 (file)
index 0000000..d61b36c
--- /dev/null
@@ -0,0 +1,3 @@
+dist/zookeeper-*.tar.gz usr/share/masterkey/lui/dist
+conf/zookeeper/* etc/masterkey/lui/zookeeper
+doc/* usr/share/doc/masterkey-lui-zookeeper
diff --git a/debian/masterkey-lui-zookeeper.postinst b/debian/masterkey-lui-zookeeper.postinst
new file mode 100644 (file)
index 0000000..df32d43
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/sh -e
+
+case "$1" in
+    configure|upgrade)
+       # Set directory permissions
+       chown -R lui-solr:lui-solr /var/lib/masterkey/lui
+       chown -R lui-solr:lui-solr /var/log/masterkey/lui
+       # Unpack zookeeper tarball
+        cd /usr/share/masterkey/lui
+        tar xzf dist/zookeeper-3.4.6.tar.gz
+        ln -s zookeeper-3.4.6 zookeeper
+        mkdir -p zookeeper/libexec
+        ln -s /etc/default/masterkey-lui-zookeeper zookeeper/libexec/zkEnv.sh
+
+        # Automatically added by dh_installinit
+        if [ -x "/etc/init.d/masterkey-lui-zookeeper" ]; then
+           update-rc.d masterkey-lui-zookeeper defaults >/dev/null
+           invoke-rc.d masterkey-lui-zookeeper start || exit $?
+        fi
+        # End automatically added section
+        
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+    ;;
+
+    *)
+        echo "postinst called with unknown argument '$1'" >&2
+        exit 1
+    ;;
+esac
+
+exit 0
diff --git a/debian/masterkey-lui-zookeeper.postrm b/debian/masterkey-lui-zookeeper.postrm
new file mode 100644 (file)
index 0000000..5e3d3a5
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh -e
+
+case "$1" in
+    purge|remove)
+       # Remove Zookeeper installation
+       rm -f /usr/share/masterkey/lui/zookeeper
+       rm -rf /usr/share/masterkey/lui/zookeeper-*
+
+        # Automatically added by dh_installinit
+        if [ "$1" = "purge" ] ; then
+           update-rc.d masterkey-lui-zookeeper remove >/dev/null
+        fi
+
+
+        # In case this system is running systemd, we make systemd reload the unit files
+        # to pick up changes.
+        if [ -d /run/systemd/system ] ; then
+           systemctl --system daemon-reload >/dev/null || true
+        fi
+        # End automatically added section
+        
+       ;;
+    upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+       ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+esac
+
+exit 0
diff --git a/debian/masterkey-lui-zookeeper.preinst b/debian/masterkey-lui-zookeeper.preinst
new file mode 100644 (file)
index 0000000..a4400b6
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+case "$1" in
+    install|upgrade)
+       # Create the solr user
+       adduser --system --shell /bin/bash --group --disabled-password --home /var/lib/masterkey/lui lui-solr
+        
+        # Automatically added by dh_installinit
+        if [ -x "/etc/init.d/masterkey-lui-zookeeper" ]; then
+           invoke-rc.d masterkey-lui-zookeeper stop || exit $?
+        fi
+        # End automatically added section
+
+    ;;
+
+    abort-upgrade)
+    ;;
+
+    *)
+        echo "preinst called with unknown argument '$1'" >&2
+        exit 1
+    ;;
+esac
+
+exit 0
diff --git a/debian/masterkey-lui-zookeeper.prerm b/debian/masterkey-lui-zookeeper.prerm
new file mode 100644 (file)
index 0000000..1db84ba
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/sh -e
+
+case "$1" in
+    remove|upgrade|deconfigure)
+
+        # Automatically added by dh_installinit
+        if [ -x "/etc/init.d/masterkey-lui-zookeeper" ]; then
+           invoke-rc.d masterkey-lui-zookeeper stop || exit $?
+        fi
+        # End automatically added section
+
+    ;;
+
+    failed-upgrade)
+    ;;
+
+    *)
+        echo "prerm called with unknown argument '$1'" >&2
+        exit 1
+    ;;
+esac
+
+exit 0
diff --git a/dev-deploy-ha/Vagrantfile b/dev-deploy-ha/Vagrantfile
new file mode 100644 (file)
index 0000000..90d062c
--- /dev/null
@@ -0,0 +1,43 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+Vagrant.configure(2) do |config|
+  # Define and configure SolrCloud cluster
+  cloudservers = {
+    "solr1" => "192.168.2.4",
+    "solr2" => "192.168.2.5"
+  }
+
+  cloudservers.each do |server_name, server_ip|
+    config.vm.define server_name do |cloudconfig|
+      cloudconfig.vm.box = "debian/contrib-jessie64"
+      cloudconfig.vm.host_name = server_name.to_s
+      cloudconfig.vm.network "private_network", ip: server_ip
+      cloudconfig.vm.provision "ansible" do |ansible|
+        ansible.playbook = "solr.yml"
+      end
+    end
+  end
+
+  # Zookeeper node
+  config.vm.define "zookeeper" do |zookeeper|
+    zookeeper.vm.box = "debian/contrib-jessie64"
+    zookeeper.vm.host_name = "zookeeper"
+    zookeeper.vm.network "private_network", ip: "192.168.2.3"
+    zookeeper.vm.provision "ansible" do |ansible|
+      ansible.playbook = "zookeeper.yml"
+    end
+  end
+  
+  # Load balancer node
+  # config.vm.define "loadbalancer" do |loadbalancer|
+  #   loadbalancer.vm.box = "debian/contrib-jessie64"
+  #   loadbalancer.vm.host_name = "loadbalancer"
+  #   loadbalancer.vm.network "private_network", ip: "192.168.2.2"
+  # end
+    
+  # Disable the default shared folder, share out project folder as /vagrant for all boxes
+  config.vm.synced_folder ".", "/vagrant", disabled: true
+  config.vm.synced_folder "..", "/vagrant"
+  
+end
diff --git a/dev-deploy-ha/solr.yml b/dev-deploy-ha/solr.yml
new file mode 100644 (file)
index 0000000..a8529eb
--- /dev/null
@@ -0,0 +1,55 @@
+---
+- hosts: all
+
+  vars:
+
+  tasks:
+    - name: Update apt-cache
+      become: yes
+      apt: update-cache=yes
+      
+    - name: Install dependencies from apt
+      become: yes
+      apt: name={{ item }} state=present
+      with_items:
+        - openjdk-7-jdk
+
+    - name: Create deployment environment
+      become: yes
+      file: path={{ item }} state=directory
+      with_items:
+        - /usr/share/masterkey/lui
+        - /var/lib/masterkey/lui/solr/lui
+        - /var/log/masterkey/lui
+        - /etc/masterkey/lui
+
+    - name: Create lui-solr account
+      become: yes
+      user: name=lui-solr state=present system=yes home=/var/lib/masterkey/lui
+
+    - name: Update permissions on deployment directories
+      become: yes
+      file: path={{ item }} owner=lui-solr recurse=yes
+      with_items:
+        - /var/lib/masterkey/lui
+        - /var/log/masterkey/lui
+
+    - name: Link Solr configuration
+      become: yes
+      file: src=/vagrant/conf/solr path=/etc/masterkey/lui/solr state=link
+
+    - name: Link Solr defaults
+      become: yes
+      file: src=/etc/masterkey/lui/solr/lui-solr.in.sh path=/etc/default/lui-solr.in.sh state=link
+
+    - name: Install Solr binary
+      become: yes
+      command: /vagrant/dist/install_solr_service.sh /vagrant/dist/solr-5.5.1.tgz -d /var/lib/masterkey/lui -i /usr/share/masterkey/lui -s lui-solr -u lui-solr -f creates=/usr/share/masterkey/lui/solr-5.5.1
+
+    - name: Remove extra files created by Solr install
+      become: yes
+      file: path={{ item }} state=absent
+      with_items:
+        - /var/lib/masterkey/lui/log4j.properties
+        - /var/lib/masterkey/lui/logs
+        - /var/lib/masterkey/lui/data/solr.xml
diff --git a/dev-deploy-ha/zookeeper.yml b/dev-deploy-ha/zookeeper.yml
new file mode 100644 (file)
index 0000000..0750019
--- /dev/null
@@ -0,0 +1,67 @@
+---
+- hosts: all
+
+  vars:
+
+  tasks:
+    - name: Update apt-cache
+      become: yes
+      apt: update-cache=yes
+      
+    - name: Install dependencies from apt
+      become: yes
+      apt: name={{ item }} state=present
+      with_items:
+        - openjdk-7-jdk
+
+    - name: Create deployment environment
+      become: yes
+      file: path={{ item }} state=directory
+      with_items:
+        - /usr/share/masterkey/lui
+        - /var/lib/masterkey/lui/zookeeper
+        - /var/log/masterkey/lui
+        - /etc/masterkey/lui
+
+    - name: Create lui-solr account
+      become: yes
+      user: name=lui-solr state=present system=yes home=/var/lib/masterkey/lui
+
+    - name: Update permissions on deployment directories
+      become: yes
+      file: path={{ item }} owner=lui-solr recurse=yes
+      with_items:
+        - /var/lib/masterkey/lui
+        - /var/log/masterkey/lui
+
+    - name: Install Zookeeper
+      become: yes
+      unarchive: src=/vagrant/dist/zookeeper-3.4.6.tar.gz dest=/usr/share/masterkey/lui copy=no creates=/usr/share/masterkey/lui/zookeeper-3.4.6
+
+    - name: Link Zookeeper
+      become: yes
+      file: src=/usr/share/masterkey/lui/zookeeper-3.4.6 path=/usr/share/masterkey/lui/zookeeper state=link
+
+    - name: Create Zookeeper libexec directory
+      become: yes
+      file: path=/usr/share/masterkey/lui/zookeeper/libexec state=directory
+
+    - name: Link Zookeeper config
+      become: yes
+      file: src=/vagrant/conf/zookeeper path=/etc/masterkey/lui/zookeeper state=link
+
+    - name: Link Zookeeper defaults into /etc/default
+      become: yes
+      file: src=/vagrant/debian/masterkey-lui-zookeeper.default path=/etc/default/masterkey-lui-zookeeper state=link
+
+    - name: Link Zookeeper defaults into /usr/share/masterkey/lui/zookeeper/libexec
+      become: yes
+      file: src=/etc/default/masterkey-lui-zookeeper path=/usr/share/masterkey/lui/zookeeper/libexec/zkEnv.sh state=link
+
+    - name: Link init script
+      become: yes
+      file: src=/vagrant/debian/masterkey-lui-zookeeper.init path=/etc/init.d/masterkey-lui-zookeeper state=link
+
+    - name: Enable and start service
+      become: yes
+      service: name=masterkey-lui-zookeeper enabled=yes state=started
diff --git a/dist/zookeeper-3.4.6.tar.gz b/dist/zookeeper-3.4.6.tar.gz
new file mode 100644 (file)
index 0000000..d9888cb
Binary files /dev/null and b/dist/zookeeper-3.4.6.tar.gz differ