#!/usr/bin/env bash
|
# Default setup script
|
|
echo "Setting up default OpenDJ instance"
|
|
# If any optional LDIF files are present load them
|
|
# There are multiple types of ldif files.
|
# This step makes plain copies.
|
# See below for imports via `ldapmodify`.
|
if [ -d /opt/opendj/bootstrap/config/schema/ ]; then
|
echo "Copying schema:"
|
mkdir -p /opt/opendj/template/config/schema
|
for file in /opt/opendj/bootstrap/config/schema/*; do
|
target_file="/opt/opendj/template/config/schema/$(basename -- $file)"
|
echo "Copying $file to $target_file"
|
cp "$file" "$target_file"
|
done
|
fi
|
|
/opt/opendj/setup \
|
--cli \
|
-h localhost \
|
--ldapPort $PORT \
|
--ldapsPort $LDAPS_PORT \
|
--enableStartTLS $OPENDJ_SSL_OPTIONS \
|
--adminConnectorPort $ADMIN_PORT \
|
--rootUserDN "$ROOT_USER_DN" \
|
--rootUserPassword "$ROOT_PASSWORD" \
|
--acceptLicense \
|
--no-prompt \
|
--noPropertiesFile \
|
$SETUP_ARGS
|
|
BACKEND_TYPE=${BACKEND_TYPE:-je}
|
BACKEND_DB_DIRECTORY=${BACKEND_DB_DIRECTORY:-db}
|
echo "creating backend: $BACKEND_TYPE db-directory: ${BACKEND_DB_DIRECTORY}"
|
|
/opt/opendj/bin/dsconfig create-backend -h localhost -p $ADMIN_PORT --bindDN "$ROOT_USER_DN" --bindPassword "$ROOT_PASSWORD" \
|
--backend-name=userRoot --type $BACKEND_TYPE --set base-dn:$BASE_DN --set "db-directory:$BACKEND_DB_DIRECTORY" \
|
--set enabled:true --no-prompt --trustAll
|
|
if [ "$ADD_BASE_ENTRY" = "--addBaseEntry" ]; then
|
BASE_TEMPLATE=$(mktemp)
|
if [ ! -z ${SAMPLE_DATA} ]; then
|
echo "generating sample data..."
|
/opt/opendj/bin/makeldif -o $BASE_TEMPLATE -c suffix="$BASE_DN" -c numusers=$SAMPLE_DATA /opt/opendj/template/config/MakeLDIF/example.template
|
/opt/opendj/bin/import-ldif --ldifFile $BASE_TEMPLATE \
|
--backendID=userRoot --bindDN "$ROOT_USER_DN" --bindPassword "$ROOT_PASSWORD"
|
else
|
echo "creating base entry..."
|
BASE_TEMPLATE=$(mktemp)
|
echo "branch: $BASE_DN" > $BASE_TEMPLATE
|
/opt/opendj/bin/import-ldif --templateFile $BASE_TEMPLATE \
|
--backendID=userRoot --bindDN "$ROOT_USER_DN" --bindPassword "$ROOT_PASSWORD"
|
fi
|
rm $BASE_TEMPLATE
|
fi
|
|
|
# There are multiple types of ldif files.
|
# The steps below import ldifs via `ldapmodify`.
|
# See above for plain copying of ldif files.
|
|
if [ -d /opt/opendj/bootstrap/schema/ ]; then
|
echo "Loading initial schema:"
|
for file in /opt/opendj/bootstrap/schema/*; do
|
echo "Loading $file ..."
|
/opt/opendj/bin/ldapmodify -D "$ROOT_USER_DN" -h localhost -p $PORT -w $ROOT_PASSWORD -f $file
|
done
|
fi
|
|
if [ -d /opt/opendj/bootstrap/data/ ]; then
|
#allow pre encoded passwords
|
/opt/opendj/bin/dsconfig \
|
set-password-policy-prop \
|
--bindDN "$ROOT_USER_DN" \
|
--bindPassword "$ROOT_PASSWORD" \
|
--policy-name "Default Password Policy" \
|
--set allow-pre-encoded-passwords:true \
|
--trustAll \
|
--no-prompt
|
|
for file in /opt/opendj/bootstrap/data/*; do
|
echo "Loading $file ..."
|
/opt/opendj/bin/ldapmodify -D "$ROOT_USER_DN" -h localhost -p $PORT -w $ROOT_PASSWORD -f $file
|
done
|
fi
|