Skip to content

Instantly share code, notes, and snippets.

@rnix
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rnix/8823390 to your computer and use it in GitHub Desktop.
Save rnix/8823390 to your computer and use it in GitHub Desktop.
Auto-install elasticsesarch service wrapper

Modifies elasticsearch.conf, determines OS bit-depth, optioanlly configures RUN_AS_USER.

e.g. Usage:

curl -ksL https://gist.github.com/rnix/8823390/raw/install-elasticsearch-servicewrapper.sh | bash -s [ES_HOME [RUN_AS_USER]]

#!/bin/bash
which unzip || sudo apt-get install unzip
ES_HOME=${1:-${ES_HOME:-${PWD}/elasticsearch}}
RUN_AS_USER=${2}
[ -d ${ES_HOME}/bin ] || {
echo "No directory: ${ES_HOME}/bin" >&2
exit ${LINENO}
}
tmp=$(mktemp -d)
[ "${tmp}" ] && [ -d ${tmp} ] || {
echo "Can not create temporary directory." >&2
exit ${LINENO}
}
trap "rm -rf ${tmp}" 0 1 2 3
(
cd ${tmp} || exit ${LINENO}
curl -Lo elasticsearch-servicewrapper.zip https://github.com/elasticsearch/elasticsearch-servicewrapper/zipball/master
unzip elasticsearch-servicewrapper.zip
sudo rm -rfv ${ES_HOME}/bin/service
sudo mv -v elasticsearch-elasticsearch-servicewrapper-*/service ${ES_HOME}/bin/
[ "${RUN_AS_USER}" ] && {
sudo chown -R ${RUN_AS_USER}:${RUN_AS_USER} ${ES_HOME}/bin/service
}
) || exit $?
bits=($(file /sbin/init))
bits="${bits[2]/-bit/}"
(
cd ${ES_HOME}/bin/service || exit ${LINENO}
sudo perl -pi -e 's|(set.default.ES_HOME=).*|$1'"${ES_HOME}|" elasticsearch.conf
[ "${RUN_AS_USER}" ] && {
sudo perl -pi -e 's|^#?(RUN_AS_USER=).*|$1'"${RUN_AS_USER}|" elasticsearch
}
)
sudo ${ES_HOME}/bin/service/elasticsearch${bits} install
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment