#!/usr/bin/env bash # Replicate to the master server hostname defined in $1 # If that server is ourself this is a no-op # This is a bit kludgy. # The hostname has to be a fully resolvable DNS name in the cluster # If the service is called MYHOSTNAME=${MYHOSTNAME:-$(hostname -f)} export PATH=/opt/opendj/bin:$PATH echo "Setting up replication from $MYHOSTNAME to $MASTER_SERVER" # For debug # K8s puts the service name in /etc/hosts if grep ${MASTER_SERVER} /etc/hosts; then echo "We are the master. Skipping replication setup to ourself" exit 0 fi # Comment out echo "replicate ENV vars:" env # todo: Replace with command to test for master being reachable and up # This is hacky.... echo "Will sleep for a bit to ensure master is up" sleep 5 if [ "$OPENDJ_REPLICATION_TYPE" == "simple" ]; then echo "Enabling Standard Replication..." /opt/opendj/bin/dsreplication \ enable \ --host1 $MASTER_SERVER \ --port1 4444 \ --bindDN1 "$ROOT_USER_DN" \ --bindPassword1 "$ROOT_PASSWORD" --replicationPort1 8989 \ --host2 $MYHOSTNAME --port2 4444 --bindDN2 "$ROOT_USER_DN" \ --bindPassword2 "$ROOT_PASSWORD" --replicationPort2 8989 \ --adminUID admin --adminPassword "$ROOT_PASSWORD" \ --baseDN "$BASE_DN" -X -n echo "initializing replication" # replicating data in MASTER_SERVER to MYHOSTNAME: /opt/opendj/bin/dsreplication initialize --baseDN "$BASE_DN" \ --adminUID admin --adminPassword "$ROOT_PASSWORD" \ --hostSource $MASTER_SERVER --portSource 4444 \ --hostDestination $MYHOSTNAME --portDestination 4444 -X -n elif [ "$OPENDJ_REPLICATION_TYPE" == "srs" ]; then echo "Enabling Standalone Replication Servers..." dsreplication enable \ --adminUID admin \ --adminPassword "$ROOT_PASSWORD" \ --baseDN "$BASE_DN" \ --host1 $MYHOSTNAME \ --port1 4444 \ --bindDN1 "$ROOT_USER_DN" \ --bindPassword1 "$ROOT_PASSWORD" \ --noReplicationServer1 \ --host2 $MASTER_SERVER \ --port2 4444 \ --bindDN2 "$ROOT_USER_DN" \ --bindPassword2 "$ROOT_PASSWORD" \ --replicationPort2 8989 \ --onlyReplicationServer2 \ --trustAll \ --no-prompt echo "initializing replication" dsreplication \ initialize-all \ --adminUID admin \ --adminPassword "$ROOT_PASSWORD" \ --baseDN "$BASE_DN" \ --hostname $MYHOSTNAME \ --port 4444 \ --trustAll \ --no-prompt elif [ "$OPENDJ_REPLICATION_TYPE" == "sdsr" ]; then echo "Enabling Standalone Directory Server Replicas...." dsreplication \ enable \ --adminUID admin \ --adminPassword "$ROOT_PASSWORD" \ --baseDN "$BASE_DN" \ --host1 $MASTER_SERVER \ --port1 4444 \ --bindDN1 "$ROOT_USER_DN" \ --bindPassword1 "$ROOT_PASSWORD" \ --host2 $MYHOSTNAME \ --port2 4444 \ --bindDN2 "$ROOT_USER_DN" \ --bindPassword2 "$ROOT_PASSWORD" \ --noReplicationServer2 \ --trustAll \ --no-prompt echo "initializing replication" dsreplication \ initialize \ --adminUID admin \ --adminPassword "$ROOT_PASSWORD" \ --baseDN "$BASE_DN" \ --hostSource $MASTER_SERVER \ --portSource 4444 \ --hostDestination $MYHOSTNAME \ --portDestination 4444 \ --trustAll \ --no-prompt elif [ "$OPENDJ_REPLICATION_TYPE" == "rg" ]; then echo "Enabling Replication Groups..." dsconfig \ set-replication-domain-prop \ --port 4444 \ --hostname $MYHOSTNAME \ --bindDN "$ROOT_USER_DN" \ --bindPassword "$ROOT_PASSWORD" \ --provider-name "Multimaster Synchronization" \ --domain-name "$BASE_DN" \ --set group-id:$OPENDJ_REPLICATION_GROUP_ID \ --trustAll \ --no-prompt dsconfig \ set-replication-server-prop \ --port 4444 \ --hostname $MASTER_SERVER \ --bindDN "$ROOT_USER_DN" \ --bindPassword "$ROOT_PASSWORD" \ --provider-name "Multimaster Synchronization" \ --set group-id:$OPENDJ_REPLICATION_GROUP_ID \ --trustAll \ --no-prompt else echo "Unknown replication type, skipping replication..." fi