#!/bin/bash # # LDAP Service PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_ldap() { echo -ne "* Configuring ldap container.." if [ ! -d "/federated/apps/ldap" ]; then mkdir -p /federated/apps/ldap/data/certs &> /dev/null mkdir -p /federated/apps/ldap/data/root &> /dev/null mkdir -p /federated/apps/ldap/data/var/lib/ldap &> /dev/null mkdir -p /federated/apps/ldap/data/etc/ldap/slap.d &> /dev/null cp /federated/certs/certs/$DOMAIN.crt /federated/certs/private/$DOMAIN.key /federated/apps/ldap/data/certs/ fi LDAPADMINPASS=`echo -n $ADMINPASS | openssl dgst -sha1 -binary | openssl enc -base64 | awk '{print "{SHA}"$0}'` LDAPFCOREPASS=`echo -n $ADMINPASS | openssl dgst -sha1 -binary | openssl enc -base64 | awk '{print "{SHA}"$0}'` cat > /federated/apps/ldap/docker-compose.yml < /federated/apps/ldap/.env < /federated/apps/ldap/.ldap.secret chmod 600 /federated/apps/ldap/.ldap.secret cat > /federated/apps/ldap/data/root/ldap.ldif < /federated/apps/ldap/data/root/ldap.sh <<'EOF' #!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin if [ ! -f .initialized ]; then echo "Importing default scheme ldap.ldif into LDAP" slapadd -v -l /root/ldap.ldif [ $? -ne 0 ] && echo "FAILED importing ldap.dif" && exit 2 touch .initialized fi EOF chmod +x /federated/apps/ldap/data/root/ldap.sh echo -ne "done.\n" } start_ldap() { # Start service with command to make sure it's up before proceeding start_service "ldap" "nc -z 192.168.0.15 636 &> /dev/null" "60" # Run our ldap.sh script inside the ldap container # This imports the inital LDAP configuration docker exec ldap /root/ldap.sh &> /dev/null [ $? -ne 0 ] && fail "Couldn't run ldap.sh inside ldap container" echo -ne "done.\n" }