Role that installs and configures a eXistDB service.

This commit is contained in:
Andrea Dell'Amico 2020-04-03 15:19:54 +02:00
parent daca2d6ff8
commit 0c4c08c8a0
13 changed files with 1863 additions and 0 deletions

View File

@ -0,0 +1,32 @@
---
exist_db_major: 5
exist_db_minor: 2
exist_db_patch: 0
exist_db_version: '{{ exist_db_major }}.{{ exist_db_minor }}.{{ exist_db_patch }}'
exist_db_distribution_dir: 'exist-distribution-{{ exist_db_version }}'
exist_db_distribution: 'https://bintray.com/existdb/releases/download_file?file_path={{ exist_db_distribution_dir }}-unix.tar.bz2'
exist_db_http_port: 8080
exist_db_home: '/srv/existdb'
exist_db_data_dir: '/srv/existdb/data'
exist_db_journal_dir: '/srv/existdb/data-journal'
exist_db_backup_dir: '/srv/existdb/data-backups'
exist_db_base_dir: '{{ exist_db_home }}/distribution/{{ exist_db_distribution_dir }}'
exist_db_logdir: '/var/log/exist-db'
#exist_db_conf_dir: '/srv/existdb/etc'
exist_db_conf_dir: '{{ exist_db_home }}/distribution/{{ exist_db_distribution_dir }}/etc'
# Always express it in 'm' (MegaBytes)
exist_db_min_java_heap: '512'
exist_db_max_java_heap: '{{ exist_db_min_java_heap }}'
# exist_db_max_java_heap / 3
exist_db_cache_size: '170'
exist_db_file_encoding: 'UTF-8'
exist_db_java_opts: "-Xms{{ exist_db_min_java_heap }}m -Xmx{{ exist_db_max_java_heap }}m -server -Djava.awt.headless=true -Dfile.encoding={{ exist_db_file_encoding }}"
exist_db_consistency_enabled: True
exist_db_check_cron: "0 0 0/3 * * ?"
exist_db_max_backups_enabled: 6
exist_db_backups_enabled: True
exist_db_incremental_backups_enabled: "yes"
exist_db_backup_cron: "0 0 0/12 * * ?"

View File

@ -0,0 +1,3 @@
---
- name: Restart existdb
service: name=exist-db state=started enabled=yes

View File

@ -0,0 +1,4 @@
---
dependencies:
- { role: '../../library/roles/nginx', when: nginx_enabled is defined and nginx_enabled }
- { role: '../../library/roles/openjdk' }

View File

@ -0,0 +1,81 @@
---
- name: Create the exist-db user and the directory tree
block:
- name: Create the exist-db user
user: name={{ exist_db_user }} home={{ exist_db_home }} comment="eXist-db Service Account" createhome=no shell=/usr/sbin/nologin system=yes
- name: Create the exist-db base path
file: dest={{ item }} state=directory mode=0750 owner=root group={{ exist_db_group }}
with_items:
- '{{ exist_db_home }}'
- '{{ exist_db_home }}/distribution'
- '{{ exist_db_conf_dir }}'
- name: Create the exist-db directory tree
file: dest={{ item }} state=directory mode=0750 owner={{ exist_db_user }} group={{ exist_db_group }}
with_items:
- '{{ exist_db_data_dir }}'
- '{{ exist_db_journal_dir }}'
- '{{ exist_db_backup_dir }}'
- '{{ exist_db_logdir }}'
- name: Link the log and data directories from the exist distribution directory
file: dest={{ exist_db_home }}/distribution/{{ exist_db_distribution_dir }}/{{ item }} state=absent
with_items:
- 'data'
- 'logs'
- name: Link the log directory into the exist distribution directory
file: src={{ exist_db_logdir }} dest={{ exist_db_home }}/distribution/{{ exist_db_distribution_dir }}/logs state=link
- name: Link the data directory into the exist distribution directory
file: src={{ exist_db_data_dir }} dest={{ exist_db_home }}/distribution/{{ exist_db_distribution_dir }}/data state=link
tags: [ 'exist-db', 'exist_db' ]
- name: Download and unpack the eXist DB distribution
block:
- name: Download the eXist DB archive
get_url: url={{ exist_db_distribution }} dest=/srv/exist-distribution-{{ exist_db_version }}-unix.tar.bz2
- name: Unarchive the eXist DB distribution
unarchive: src=/srv/exist-distribution-{{ exist_db_version }}-unix.tar.bz2 dest={{ exist_db_home }}/distribution remote_src=yes owner=root group=root
args:
creates: '{{ exist_db_home }}/distribution/{{ exist_db_distribution_dir }}/lib'
tags: [ 'exist-db', 'exist_db' ]
- name: Configure the eXistDB service
block:
- name: Install the changes to the configuration files in the custom etc/ directory
template: src={{ item }}.j2 dest={{ exist_db_conf_dir }}/{{ item }}
with_items:
- 'conf.xml'
- 'log4j2.xml'
notify: Restart existdb
- name: Install the startup scripts
template: src={{ item }}.j2 dest={{ exist_db_home }}/distribution/{{ exist_db_distribution_dir }}/bin/{{ item }} owner=root group=root mode=0755
with_items:
- 'startup.sh'
- 'shutdown.sh'
- 'backup.sh'
- 'client.sh'
- 'export.sh'
- name: Install the exist-db systemd unit
template: src=exist-db.service.j2 dest=/lib/systemd/system/exist-db.service owner=root group=root mode=0644
register: existdb_unit_install
- name: Reload the systemd configuration
systemd: daemon_reload=yes
when: existdb_unit_install is changed
- name: Ensure that the eXistDB service is running and enabled
service: name=exist-db state=started enabled=yes
tags: [ 'exist-db', 'exist_db', 'exist_db_conf' ]

View File

@ -0,0 +1,86 @@
#!/usr/bin/env sh
# eXist Open Source Native XML Database
# Copyright (C) 2019 The eXist-db Project
# info@exist-db.org
# http://www.exist-db.org
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
# resolve links - $0 may be a softlink
PRG="$0"
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
PRGDIR=`dirname "$PRG"`
#BASEDIR=`cd "$PRGDIR/.." >/dev/null; pwd`
BASEDIR="{{ exist_db_base_dir }}"
# Reset the REPO variable. If you need to influence this use the environment setup file.
REPO=
# If a specific java binary isn't specified search for the standard 'java' binary
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD=`which java`
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." 1>&2
echo " We cannot execute $JAVACMD" 1>&2
exit 1
fi
if [ -z "$REPO" ]
then
REPO="$BASEDIR"/lib
fi
CLASSPATH="$BASEDIR"/etc:"$REPO"/appassembler-booter-2.1.0.jar:"$REPO"/appassembler-model-2.1.0.jar:"$REPO"/plexus-utils-3.2.0.jar:"$REPO"/stax-api-1.0.1.jar:"$REPO"/stax-1.1.1-dev.jar
ENDORSED_DIR=
if [ -n "$ENDORSED_DIR" ] ; then
CLASSPATH=$BASEDIR/$ENDORSED_DIR/*:$CLASSPATH
fi
if [ -n "$CLASSPATH_PREFIX" ] ; then
CLASSPATH=$CLASSPATH_PREFIX:$CLASSPATH
fi
exec "$JAVACMD" $JAVA_OPTS -Xms128m -Dfile.encoding=UTF-8 -Dlog4j.configurationFile={{ exist_db_conf_dir }}/log4j2.xml -Dexist.home="$BASEDIR" -Dexist.configurationFile={{ exist_db_conf_dir }}/conf.xml -Djetty.home="$BASEDIR" -Dexist.jetty.config="$BASEDIR"/etc/jetty/standard.enabled-jetty-configs \
-classpath "$CLASSPATH" \
-Dapp.name="backup" \
-Dapp.pid="$$" \
-Dapp.repo="$REPO" \
-Dapp.home="$BASEDIR" \
-Dbasedir="$BASEDIR" \
org.codehaus.mojo.appassembler.booter.AppassemblerBooter \
"$@"

View File

@ -0,0 +1,85 @@
#!/usr/bin/env sh
# eXist Open Source Native XML Database
# Copyright (C) 2019 The eXist-db Project
# info@exist-db.org
# http://www.exist-db.org
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
# resolve links - $0 may be a softlink
PRG="$0"
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
PRGDIR=`dirname "$PRG"`
BASEDIR="{{ exist_db_base_dir }}"
# Reset the REPO variable. If you need to influence this use the environment setup file.
REPO=
# If a specific java binary isn't specified search for the standard 'java' binary
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD=`which java`
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." 1>&2
echo " We cannot execute $JAVACMD" 1>&2
exit 1
fi
if [ -z "$REPO" ]
then
REPO="$BASEDIR"/lib
fi
CLASSPATH="$BASEDIR"/etc:"$REPO"/appassembler-booter-2.1.0.jar:"$REPO"/appassembler-model-2.1.0.jar:"$REPO"/plexus-utils-3.2.0.jar:"$REPO"/stax-api-1.0.1.jar:"$REPO"/stax-1.1.1-dev.jar
ENDORSED_DIR=
if [ -n "$ENDORSED_DIR" ] ; then
CLASSPATH=$BASEDIR/$ENDORSED_DIR/*:$CLASSPATH
fi
if [ -n "$CLASSPATH_PREFIX" ] ; then
CLASSPATH=$CLASSPATH_PREFIX:$CLASSPATH
fi
exec "$JAVACMD" $JAVA_OPTS -Xms128m -Dfile.encoding=UTF-8 -Dlog4j.configurationFile={{ exist_db_conf_dir }}/log4j2.xml -Dexist.home="$BASEDIR" -Dexist.configurationFile={{ exist_db_conf_dir }}/conf.xml -Djetty.home="$BASEDIR" -Dexist.jetty.config="$BASEDIR"/etc/jetty/standard.enabled-jetty-configs \
-classpath "$CLASSPATH" \
-Dapp.name="client" \
-Dapp.pid="$$" \
-Dapp.repo="$REPO" \
-Dapp.home="$BASEDIR" \
-Dbasedir="$BASEDIR" \
org.codehaus.mojo.appassembler.booter.AppassemblerBooter \
"$@"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,20 @@
[Unit]
Description=eXist-db {{ exist_db_version }} Server
Documentation=http://www.exist-db.org/exist/apps/doc/documentation
After=syslog.target network.target
[Service]
#Type=forking
Type=simple
SyslogIdentifier=existdb
User={{ exist_db_user }}
Group={{ exist_db_group }}
ExecStart={{ exist_db_base_dir }}/bin/startup.sh
ExecStop={{ exist_db_base_dir }}/bin/shutdown.sh
Restart=on-failure
RestartSec=30s
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,85 @@
#!/usr/bin/env sh
# eXist Open Source Native XML Database
# Copyright (C) 2019 The eXist-db Project
# info@exist-db.org
# http://www.exist-db.org
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
# resolve links - $0 may be a softlink
PRG="$0"
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
PRGDIR=`dirname "$PRG"`
BASEDIR="{{ exist_db_base_dir }}"
# Reset the REPO variable. If you need to influence this use the environment setup file.
REPO=
# If a specific java binary isn't specified search for the standard 'java' binary
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD=`which java`
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." 1>&2
echo " We cannot execute $JAVACMD" 1>&2
exit 1
fi
if [ -z "$REPO" ]
then
REPO="$BASEDIR"/lib
fi
CLASSPATH="$BASEDIR"/etc:"$REPO"/appassembler-booter-2.1.0.jar:"$REPO"/appassembler-model-2.1.0.jar:"$REPO"/plexus-utils-3.2.0.jar:"$REPO"/stax-api-1.0.1.jar:"$REPO"/stax-1.1.1-dev.jar
ENDORSED_DIR=
if [ -n "$ENDORSED_DIR" ] ; then
CLASSPATH=$BASEDIR/$ENDORSED_DIR/*:$CLASSPATH
fi
if [ -n "$CLASSPATH_PREFIX" ] ; then
CLASSPATH=$CLASSPATH_PREFIX:$CLASSPATH
fi
exec "$JAVACMD" $JAVA_OPTS -Xms128m -Dfile.encoding=UTF-8 -Dlog4j.configurationFile={{ exist_db_conf_dir }}/log4j2.xml -Dexist.home="$BASEDIR" -Dexist.configurationFile={{ exist_db_conf_dir }}/conf.xml -Djetty.home="$BASEDIR" -Dexist.jetty.config="$BASEDIR"/etc/jetty/standard.enabled-jetty-configs \
-classpath "$CLASSPATH" \
-Dapp.name="export" \
-Dapp.pid="$$" \
-Dapp.repo="$REPO" \
-Dapp.home="$BASEDIR" \
-Dbasedir="$BASEDIR" \
org.codehaus.mojo.appassembler.booter.AppassemblerBooter \
"$@"

View File

@ -0,0 +1,252 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Properties>
<Property name="logs">{{ exist_db_logdir }}</Property>
{% raw %}
<Property name="rollover.max.size">10MB</Property>
<Property name="rollover.max">14</Property>
<Property name="rollover.file.pattern">%d{yyyyMMddHHmmss}</Property>
<Property name="exist.file.pattern">%d [%t] %-5p (%F [%M]:%L) - %m %n</Property>
</Properties>
<Appenders>
<Console name="STDOUT">
<PatternLayout pattern="%d{DATE} [%t] %-5p (%F [%M]:%L) - %m %n"/>
</Console>
<RollingRandomAccessFile name="exist.core" filePattern="${logs}/exist.${rollover.file.pattern}.log.gz" fileName="${logs}/exist.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="${exist.file.pattern}"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="exist.locks" filePattern="${logs}/locks.${rollover.file.pattern}.log.gz" fileName="${logs}/locks.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="%d %-5p - %m %n"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="exist.ensurelocking" filePattern="${logs}/locks.${rollover.file.pattern}.log.gz" fileName="${logs}/ensure-locking.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="%d %-5p - %m %n"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="exist.xmldb" filePattern="${logs}/xmldb.${rollover.file.pattern}.log.gz" fileName="${logs}/xmldb.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="${exist.file.pattern}"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="exist.xmlrpc" filePattern="${logs}/xmlrpc.${rollover.file.pattern}.log.gz" fileName="${logs}/xmlrpc.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="${exist.file.pattern}"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="exist.urlrewrite" filePattern="${logs}/urlrewrite.${rollover.file.pattern}.log.gz" fileName="${logs}/urlrewrite.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="${exist.file.pattern}"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="exist.profiling" filePattern="${logs}/profile.${rollover.file.pattern}.log.gz" fileName="${logs}/profile.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="${exist.file.pattern}"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="exist.scheduler" filePattern="${logs}/scheduler.${rollover.file.pattern}.log.gz" fileName="${logs}/scheduler.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="${exist.file.pattern}"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="exist.ehcache" filePattern="${logs}/ehcache.${rollover.file.pattern}.log.gz" fileName="${logs}/ehcache.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="${exist.file.pattern}"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="exist.betterform" filePattern="${logs}/betterform.${rollover.file.pattern}.log.gz" fileName="${logs}/betterform.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="${exist.file.pattern}"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="exist.restxq" filePattern="${logs}/restxq.${rollover.file.pattern}.log.gz" fileName="${logs}/restxq.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="${exist.file.pattern}"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="exist.backup" filePattern="${logs}/backup.${rollover.file.pattern}.log.gz" fileName="${logs}/backup.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="${exist.file.pattern}"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="exist.statistics" filePattern="${logs}/statistics.${rollover.file.pattern}.log.gz" fileName="${logs}/statistics.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="${exist.file.pattern}"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="expath.repo" filePattern="${logs}/expath-repo.${rollover.file.pattern}.log.gz" fileName="${logs}/expath-repo.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="${exist.file.pattern}"/>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="exist.launcher" filePattern="${logs}/launcher.${rollover.file.pattern}.log.gz" fileName="${logs}/launcher.log">
<Policies>
<SizeBasedTriggeringPolicy size="${rollover.max.size}"/>
</Policies>
<DefaultRolloverStrategy max="${rollover.max}"/>
<PatternLayout pattern="${exist.file.pattern}"/>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Logger name="org.exist.storage.lock.LockTable" additivity="false" level="info"> <!-- set to level="trace" to see lock activity -->
<AppenderRef ref="exist.locks"/>
</Logger>
<Logger name="org.exist.storage.lock.EnsureLockingAspect" additivity="false" level="trace">
<AppenderRef ref="exist.ensurelocking"/>
</Logger>
<Logger name="org.exist.util.sanity.SanityCheck" additivity="false" level="info"> <!-- set to level="trace" to enable all sanity check logging -->
<AppenderRef ref="exist.core"/>
</Logger>
<Logger name="org.exist.jetty.JettyStart" additivity="false" level="trace">
<AppenderRef ref="STDOUT"/>
<AppenderRef ref="exist.core"/>
</Logger>
<Logger name="org.exist.jetty.StandaloneServer" additivity="false" level="trace">
<AppenderRef ref="STDOUT"/>
<AppenderRef ref="exist.core"/>
</Logger>
<Logger name="xquery.profiling" additivity="false" level="trace">
<AppenderRef ref="exist.profiling"/>
</Logger>
<Logger name="org.exist.statistics" additivity="false" level="debug">
<AppenderRef ref="exist.core"/>
<AppenderRef ref="exist.statistics"/>
</Logger>
<Logger name="org.exist.backup.SystemExport" additivity="false" level="trace">
<AppenderRef ref="exist.backup"/>
</Logger>
<Logger name="org.exist.xmldb" additivity="false" level="info">
<AppenderRef ref="exist.xmldb"/>
</Logger>
<Logger name="org.exist.xmlrpc" additivity="false" level="info">
<AppenderRef ref="exist.xmlrpc"/>
</Logger>
<Logger name="org.apache.xmlrpc" additivity="false" level="info">
<AppenderRef ref="exist.xmlrpc"/>
</Logger>
<Logger name="org.exist.http.urlrewrite" additivity="false" level="info">
<!-- set to "trace" to get detailed info on URL rewriting -->
<AppenderRef ref="exist.urlrewrite"/>
</Logger>
<Logger name="org.exist.extensions.exquery.restxq" additivity="false" level="info">
<AppenderRef ref="exist.restxq"/>
</Logger>
<Logger name="org.eclipse.jetty" additivity="false" level="info">
<AppenderRef ref="exist.core"/>
</Logger>
<Logger name="httpclient" additivity="false" level="info">
<AppenderRef ref="exist.core"/>
</Logger>
<Logger name="net.sf.ehcache" additivity="false" level="info">
<AppenderRef ref="exist.ehcache"/>
</Logger>
<!-- Milton WebDAV framework -->
<Logger name="com.bradmcevoy" additivity="false" level="info">
<AppenderRef ref="exist.core"/>
</Logger>
<!-- Apache Axis: 'debug' produces a large amount of debugging output -->
<Logger name="org.apache" additivity="false" level="off">
<AppenderRef ref="exist.core"/>
</Logger>
<!-- Quartz scheduler -->
<Logger name="org.quartz" additivity="false" level="info">
<AppenderRef ref="exist.scheduler"/>
</Logger>
<Logger name="org.exist.storage.SystemTask" additivity="false" level="debug">
<AppenderRef ref="exist.scheduler"/>
</Logger>
<!-- betterFORM extension -->
<Logger name="de.betterform" additivity="false" level="warn">
<AppenderRef ref="exist.betterform"/>
</Logger>
<!-- expath pkg repo -->
<Logger name="org.expath.pkg" additivity="false" level="info">
<AppenderRef ref="expath.repo"/>
</Logger>
<Logger name="org.exist.repo" additivity="false" level="info">
<AppenderRef ref="expath.repo"/>
</Logger>
<Logger name="org.exist.launcher" additivity="false" level="warn">
<AppenderRef ref="exist.launcher"/>
</Logger>
<Root level="info">
<AppenderRef ref="exist.core"></AppenderRef>
</Root>
</Loggers>
</Configuration>
{% endraw %}

View File

@ -0,0 +1,86 @@
#!/usr/bin/env sh
# eXist Open Source Native XML Database
# Copyright (C) 2019 The eXist-db Project
# info@exist-db.org
# http://www.exist-db.org
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
# resolve links - $0 may be a softlink
PRG="$0"
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
PRGDIR=`dirname "$PRG"`
#BASEDIR=`cd "$PRGDIR/.." >/dev/null; pwd`
BASEDIR="{{ exist_db_base_dir }}"
# Reset the REPO variable. If you need to influence this use the environment setup file.
REPO=
# If a specific java binary isn't specified search for the standard 'java' binary
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD=`which java`
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." 1>&2
echo " We cannot execute $JAVACMD" 1>&2
exit 1
fi
if [ -z "$REPO" ]
then
REPO="$BASEDIR"/lib
fi
CLASSPATH="$BASEDIR"/etc:"$REPO"/appassembler-booter-2.1.0.jar:"$REPO"/appassembler-model-2.1.0.jar:"$REPO"/plexus-utils-3.2.0.jar:"$REPO"/stax-api-1.0.1.jar:"$REPO"/stax-1.1.1-dev.jar
ENDORSED_DIR=
if [ -n "$ENDORSED_DIR" ] ; then
CLASSPATH=$BASEDIR/$ENDORSED_DIR/*:$CLASSPATH
fi
if [ -n "$CLASSPATH_PREFIX" ] ; then
CLASSPATH=$CLASSPATH_PREFIX:$CLASSPATH
fi
exec "$JAVACMD" $JAVA_OPTS {{ exist_db_java_opts }} -Dlog4j.configurationFile={{ exist_db_conf_dir }}/log4j2.xml -Dexist.home="$BASEDIR" -Dexist.configurationFile={{ exist_db_conf_dir }}/conf.xml -Djetty.home="$BASEDIR" -Dexist.jetty.config="$BASEDIR"/etc/jetty/standard.enabled-jetty-configs \
-classpath "$CLASSPATH" \
-Dapp.name="shutdown" \
-Dapp.pid="$$" \
-Dapp.repo="$REPO" \
-Dapp.home="$BASEDIR" \
-Dbasedir="$BASEDIR" \
org.codehaus.mojo.appassembler.booter.AppassemblerBooter \
"$@"

View File

@ -0,0 +1,86 @@
#!/usr/bin/env sh
# eXist Open Source Native XML Database
# Copyright (C) 2019 The eXist-db Project
# info@exist-db.org
# http://www.exist-db.org
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
# resolve links - $0 may be a softlink
PRG="$0"
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
PRGDIR=`dirname "$PRG"`
#BASEDIR=`cd "$PRGDIR/.." >/dev/null; pwd`
BASEDIR="{{ exist_db_base_dir }}"
# Reset the REPO variable. If you need to influence this use the environment setup file.
REPO=
# If a specific java binary isn't specified search for the standard 'java' binary
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD=`which java`
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." 1>&2
echo " We cannot execute $JAVACMD" 1>&2
exit 1
fi
if [ -z "$REPO" ]
then
REPO="$BASEDIR"/lib
fi
CLASSPATH="$BASEDIR"/etc:"$REPO"/appassembler-booter-2.1.0.jar:"$REPO"/appassembler-model-2.1.0.jar:"$REPO"/plexus-utils-3.2.0.jar:"$REPO"/stax-api-1.0.1.jar:"$REPO"/stax-1.1.1-dev.jar
ENDORSED_DIR=
if [ -n "$ENDORSED_DIR" ] ; then
CLASSPATH=$BASEDIR/$ENDORSED_DIR/*:$CLASSPATH
fi
if [ -n "$CLASSPATH_PREFIX" ] ; then
CLASSPATH=$CLASSPATH_PREFIX:$CLASSPATH
fi
exec "$JAVACMD" $JAVA_OPTS {{ exist_db_java_opts }} -Dlog4j.configurationFile={{ exist_db_conf_dir }}/log4j2.xml -Dexist.home="$BASEDIR" -Dexist.configurationFile={{ exist_db_conf_dir }}/conf.xml -Djetty.home="$BASEDIR" -Dexist.jetty.config="$BASEDIR"/etc/jetty/standard.enabled-jetty-configs \
-classpath "$CLASSPATH" \
-Dapp.name="startup" \
-Dapp.pid="$$" \
-Dapp.repo="$REPO" \
-Dapp.home="$BASEDIR" \
-Dbasedir="$BASEDIR" \
org.codehaus.mojo.appassembler.booter.AppassemblerBooter \
"$@"

View File

@ -0,0 +1,3 @@
---
exist_db_user: existdb
exist_db_group: '{{ exist_db_user }}'