Archived
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
676d3d736d | ||
|
|
a413a31ed3 | ||
|
|
c00342523e | ||
|
|
08b5a758be | ||
|
|
38e78710af | ||
|
|
e3588f93f2 | ||
|
|
d7245df8bb | ||
|
|
60293c62cb | ||
|
|
5f6a2c1530 | ||
|
|
e54327660a | ||
|
|
b8f71b7953 | ||
|
|
14ebe80b99 | ||
|
|
f50c6b3a97 | ||
|
|
72f68af0fd | ||
|
|
b9e85313b1 | ||
|
|
bcaa13ac77 | ||
|
|
31b6c31d5e | ||
|
|
bd87b91d3a | ||
|
|
4800e140cf | ||
|
|
df81b9ec7e | ||
|
|
ae2d4de5ec | ||
|
|
9c542cafe2 | ||
|
|
2ceab05d59 | ||
|
|
c5b29549a2 | ||
|
|
2d97fce4e9 | ||
|
|
c057d3c2ac | ||
|
|
73bf28d2c5 | ||
|
|
4e610b3b46 | ||
|
|
56705e7840 | ||
|
|
69ac87fa51 | ||
|
|
01a9dc9d72 |
No files matched your search
@@ -15,6 +15,9 @@ ENV LDAP_DOMAIN example.com
|
||||
# Disable SSH
|
||||
RUN rm -rf /etc/service/sshd /etc/my_init.d/00_regen_ssh_host_keys.sh
|
||||
|
||||
# Enable dnsmasq
|
||||
RUN /etc/enable-service dnsmasq
|
||||
|
||||
# Use baseimage-docker's init system.
|
||||
CMD ["/sbin/my_init"]
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ and optionaly `dhparam.pem` this file is genereted automaticaly if not present.
|
||||
|
||||
docker run --dns=127.0.0.1 \
|
||||
-v /data/ldap/db:/var/lib/ldap \
|
||||
-v /data/ldap/config:/etc/ldap/slapd.d \
|
||||
-v /data/ldap/ssl/:/etc/ldap/ssl \
|
||||
-v /data/ldap/log/:/var/log \
|
||||
-e LDAP_DOMAIN=example.com \
|
||||
|
||||
@@ -6,19 +6,17 @@ status () {
|
||||
echo "---> ${@}" >&2
|
||||
}
|
||||
|
||||
|
||||
set -x
|
||||
: LDAP_ADMIN_PWD=${LDAP_ADMIN_PWD}
|
||||
: LDAP_DOMAIN=${LDAP_DOMAIN}
|
||||
: LDAP_ORGANISATION=${LDAP_ORGANISATION}
|
||||
|
||||
|
||||
############ Base config ############
|
||||
if [ ! -e /var/lib/ldap/docker_bootstrapped ]; then
|
||||
status "configuring slapd for first run"
|
||||
status "configuring slapd database"
|
||||
|
||||
# permission error on /etc/ldap/slapd.conf if not set?! :'(
|
||||
adduser openldap root
|
||||
|
||||
############ Base config ############
|
||||
cat <<EOF | debconf-set-selections
|
||||
slapd slapd/internal/generated_adminpw password ${LDAP_ADMIN_PWD}
|
||||
slapd slapd/internal/adminpw password ${LDAP_ADMIN_PWD}
|
||||
@@ -37,9 +35,18 @@ EOF
|
||||
|
||||
dpkg-reconfigure -f noninteractive slapd
|
||||
|
||||
touch /var/lib/ldap/docker_bootstrapped
|
||||
|
||||
############ Custom config ############
|
||||
slapd -h "ldap:/// ldapi:///" -u openldap -g openldap
|
||||
else
|
||||
status "slapd database found"
|
||||
fi
|
||||
|
||||
|
||||
############ Custom config ############
|
||||
if [ ! -e /etc/ldap/config/docker_bootstrapped ]; then
|
||||
status "Custom config"
|
||||
|
||||
slapd -h "ldapi:///" -u openldap -g openldap
|
||||
chown -R openldap:openldap /etc/ldap
|
||||
|
||||
# TLS
|
||||
@@ -60,7 +67,7 @@ EOF
|
||||
fi
|
||||
|
||||
# Replication
|
||||
# todo
|
||||
# todo :)
|
||||
|
||||
# Other config files
|
||||
for f in $(find /etc/ldap/config -maxdepth 1 -name \*.ldif -type f); do
|
||||
@@ -70,7 +77,7 @@ EOF
|
||||
|
||||
kill -INT `cat /run/slapd/slapd.pid`
|
||||
|
||||
touch /var/lib/ldap/docker_bootstrapped
|
||||
touch /etc/ldap/config/docker_bootstrapped
|
||||
|
||||
else
|
||||
status "found already-configured slapd"
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Tests
|
||||
# Usage
|
||||
# sudo ./test.sh
|
||||
# add -v for verbose mode
|
||||
|
||||
verbose=$1
|
||||
error=0
|
||||
ok=0
|
||||
|
||||
@@ -24,8 +28,11 @@ run_test () {
|
||||
|
||||
echo_start $fction
|
||||
|
||||
#./test/$1.sh | tee $out 2>&1
|
||||
./test/$1.sh > $out 2>&1
|
||||
if [ -z ${verbose} ]; then
|
||||
./test/$1.sh > $out 2>&1
|
||||
else
|
||||
./test/$1.sh | tee $out 2>&1
|
||||
fi
|
||||
|
||||
if [ "$(grep -c "$2" $out)" -eq 0 ]; then
|
||||
echo_error $fction
|
||||
@@ -37,11 +44,12 @@ run_test () {
|
||||
}
|
||||
|
||||
|
||||
./test/tools/prepare.sh
|
||||
./test/tools/prepare.sh > /dev/null 2>&1
|
||||
run_test build "Successfully built"
|
||||
run_test run-simple "dn: dc=example,dc=com"
|
||||
run_test run-tls "dn: dc=example,dc=com"
|
||||
./test/tools/end.sh
|
||||
run_test simple "dn: dc=example,dc=com"
|
||||
run_test tls "dn: dc=example,dc=com"
|
||||
run_test db "dn: dc=otherdomain,dc=com"
|
||||
./test/tools/end.sh > /dev/null 2>&1
|
||||
|
||||
echo "------- Test finished -------"
|
||||
echo $error " failed " $ok " passed"
|
||||
|
||||
+6
-2
@@ -1,4 +1,8 @@
|
||||
#!/bin/sh
|
||||
sudo docker.io build -t openldap-test .
|
||||
#sudo docker.io build --no-cache=true -t openldap-test .
|
||||
|
||||
dir=$(dirname $0)
|
||||
. $dir/tools/config.prop
|
||||
|
||||
docker.io build -t $openldapTestImage .
|
||||
#docker.io build --no-cache=true -t $openldapTestImage .
|
||||
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
|
||||
dir=$(dirname $0)
|
||||
. $dir/tools/config.prop
|
||||
|
||||
if [ -d "$openldapTestDir" ]; then
|
||||
rm -r $openldapTestDir
|
||||
fi
|
||||
|
||||
mkdir $openldapTestDir
|
||||
mkdir $openldapTestDir/db
|
||||
mkdir $openldapTestDir/config
|
||||
|
||||
runOptions="-e LDAP_DOMAIN=otherdomain.com -v $openldapTestDir/db:/var/lib/ldap -v $openldapTestDir/config:/etc/ldap/slapd.d"
|
||||
. $dir/tools/run-simple.sh
|
||||
$dir/tools/delete-container.sh
|
||||
|
||||
runOptions="-v $openldapTestDir/db:/var/lib/ldap -v $openldapTestDir/config:/etc/ldap/slapd.d"
|
||||
. $dir/tools/run-simple.sh
|
||||
echo "ldapsearch -x -h $IP -b dc=otherdomain,dc=com"
|
||||
ldapsearch -x -h $IP -b dc=otherdomain,dc=com
|
||||
|
||||
rm -r $openldapTestDir
|
||||
$dir/tools/delete-container.sh
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# remove openldap test containers
|
||||
sudo docker.io ps -a > testcontainers.out
|
||||
|
||||
if [ "$(grep -c "openldap-test-container" ./testcontainers.out)" -ne 0 ]; then
|
||||
sudo docker.io stop openldap-test-container
|
||||
sudo docker.io rm openldap-test-container
|
||||
fi
|
||||
|
||||
rm testcontainers.out
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
./test/delete-container.sh
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
./test/delete-container.sh
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
docker.io run --name openldap-test-container -p 65389:389 -d openldap-test
|
||||
sleep 5
|
||||
ldapsearch -x -h localhost -p 65389 -b dc=example,dc=com
|
||||
|
||||
$(pwd)/test/tools/delete-container.sh
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
docker.io run --name openldap-test-container --dns=127.0.0.1 -v `pwd`/test/ssl:/etc/ldap/ssl -p 65389:389 -d openldap-test
|
||||
|
||||
cert=$(echo `pwd`/test/ssl/ldap.crt)
|
||||
certCN=$(openssl x509 -in $cert -subject -noout | sed -n 's/.*CN=\(.*\)\/*\(.*\)/\1/p')
|
||||
addLine=$(echo "127.0.0.1" $certCN)
|
||||
|
||||
echo $addLine >> /etc/hosts
|
||||
cp /etc/ldap/ldap.conf /etc/ldap/ldap.conf.old
|
||||
sed -i 's,TLS_CACERT.*,TLS_CACERT '"$cert"',g' /etc/ldap/ldap.conf
|
||||
|
||||
|
||||
sleep 5
|
||||
ldapsearch -x -h $certCN -p 65389 -b dc=example,dc=com -ZZ
|
||||
|
||||
sed -i '/'"$addLine"'/d' /etc/hosts
|
||||
cp /etc/ldap/ldap.conf.old /etc/ldap/ldap.conf
|
||||
rm /etc/ldap/ldap.conf.old
|
||||
|
||||
$(pwd)/test/tools/delete-container.sh
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
dir=$(dirname $0)
|
||||
. $dir/tools/config.prop
|
||||
|
||||
. $dir/tools/run-simple.sh
|
||||
echo "ldapsearch -x -h $IP -b dc=example,dc=com"
|
||||
ldapsearch -x -h $IP -b dc=example,dc=com
|
||||
|
||||
$dir/tools/delete-container.sh
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
dir=$(dirname $0)
|
||||
. $dir/tools/config.prop
|
||||
|
||||
. $dir/tools/run-tls.sh
|
||||
echo "ldapsearch -x -h $certCN -b dc=example,dc=com -ZZ"
|
||||
ldapsearch -x -h $certCN -b dc=example,dc=com -ZZ
|
||||
|
||||
. $dir/tools/end-tls.sh
|
||||
@@ -0,0 +1,3 @@
|
||||
openldapTestImage=openldap-test
|
||||
openldapTestContainer=openldap-test-container
|
||||
openldapTestDir=/osixia-test-docker-openldap
|
||||
@@ -1,11 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
. $(dirname $0)/config.prop
|
||||
|
||||
# remove openldap test container
|
||||
sudo docker.io ps -a > testcontainer.out
|
||||
res=$(docker.io ps -a | grep -c "$openldapTestContainer")
|
||||
|
||||
if [ "$(grep -c "openldap-test-container" ./testcontainer.out)" -ne 0 ]; then
|
||||
sudo docker.io stop openldap-test-container
|
||||
sudo docker.io rm openldap-test-container
|
||||
if [ $res -ne 0 ]; then
|
||||
docker.io stop $openldapTestContainer
|
||||
docker.io rm $openldapTestContainer
|
||||
fi
|
||||
|
||||
rm testcontainer.out
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
. $(dirname $0)/config.prop
|
||||
|
||||
# remove openldap test image
|
||||
res=$(docker.io images | grep -c "$openldapTestImage")
|
||||
|
||||
if [ $res -ne 0 ]; then
|
||||
docker.io rmi $openldapTestImage
|
||||
fi
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
sed -i '/'"$addLine"'/d' /etc/hosts
|
||||
cp /etc/ldap/ldap.conf.old /etc/ldap/ldap.conf
|
||||
rm /etc/ldap/ldap.conf.old
|
||||
|
||||
$dir/tools/delete-container.sh
|
||||
+3
-1
@@ -1,3 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
./test/tools/delete-container.sh
|
||||
dir=$(dirname $0)
|
||||
$dir/delete-container.sh
|
||||
$dir/delete-image.sh
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
./test/tools/delete-container.sh
|
||||
dir=$(dirname $0)
|
||||
$dir/delete-container.sh
|
||||
$dir/delete-image.sh
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo "docker.io run --name $openldapTestContainer $runOptions -d $openldapTestImage"
|
||||
ID=`docker.io run --name $openldapTestContainer $runOptions -d $openldapTestImage`
|
||||
sleep 5
|
||||
|
||||
echo " --> Obtaining IP"
|
||||
IP=`docker inspect $ID | grep IPAddress | sed -e 's/.*: "//; s/".*//'`
|
||||
if [ "$IP" = "" ]; then
|
||||
abort "Unable to obtain container IP"
|
||||
exit 1
|
||||
else
|
||||
echo " -->" $IP
|
||||
fi
|
||||
Executable
+16
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
|
||||
runOptions="--dns=127.0.0.1 -v `pwd`/test/ssl:/etc/ldap/ssl"
|
||||
. $dir/tools/run-simple.sh
|
||||
|
||||
cert=$(echo $dir/ssl/ldap.crt)
|
||||
certCN=$(openssl x509 -in $cert -subject -noout | sed -n 's/.*CN=\(.*\)\/*\(.*\)/\1/p')
|
||||
addLine=$(echo $IP $certCN)
|
||||
|
||||
echo $addLine >> /etc/hosts
|
||||
cp /etc/ldap/ldap.conf /etc/ldap/ldap.conf.old
|
||||
sed -i 's,TLS_CACERT.*,TLS_CACERT '"$cert"',g' /etc/ldap/ldap.conf
|
||||
|
||||
sleep 5
|
||||
|
||||
Reference in new issue
Block a user