Archived
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2771210313 | ||
|
|
9964ef4491 | ||
|
|
c0aef5c88e | ||
|
|
a377d17e5a | ||
|
|
7eae1e4547 | ||
|
|
17a6c73799 | ||
|
|
b7459175e1 | ||
|
|
b68b62a130 | ||
|
|
4ecd6c7ba7 | ||
|
|
1546818b81 | ||
|
|
6fd179601b | ||
|
|
13b7a0624e | ||
|
|
fe18497e16 | ||
|
|
8e9be9c75b | ||
|
|
db173a2dc9 | ||
|
|
899389b581 | ||
|
|
62defdfd95 | ||
|
|
a07ed80902 | ||
|
|
a75d5c401e | ||
|
|
8e81c4574d | ||
|
|
e4a4f6a667 | ||
|
|
a9f7f47e9a | ||
|
|
e11220fb96 | ||
|
|
d36e3dd10e | ||
|
|
b7a2691545 | ||
|
|
d4e039a2bf | ||
|
|
6cfd595bd5 | ||
|
|
e553d3749d | ||
|
|
1b6dab9852 | ||
|
|
ea563acee9 | ||
|
|
0a1e79690e | ||
|
|
378207027a | ||
|
|
d245c07803 | ||
|
|
6849077ee8 | ||
|
|
35904aa284 | ||
|
|
3ae806c51f | ||
|
|
1e2512c998 | ||
|
|
9531804222 | ||
|
|
faeb220686 | ||
|
|
987d044727 | ||
|
|
ba0b83ad27 | ||
|
|
ccaf1cf6bc | ||
|
|
e303d10740 | ||
|
|
b4de6adb08 | ||
|
|
b98fb70cd4 | ||
|
|
e936973e9c | ||
|
|
223c040565 | ||
|
|
940c5afc4f | ||
|
|
857e692b3c | ||
|
|
e7efbceae8 | ||
|
|
87fea6c869 | ||
|
|
c32c1683ed | ||
|
|
5606ef1938 | ||
|
|
5125257293 | ||
|
|
2c6ceec151 | ||
|
|
d9f06d5579 | ||
|
|
a31e2ce8bd | ||
|
|
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 | ||
|
|
88ab3c3a3e | ||
|
|
6026e823b0 | ||
|
|
f6afa826b4 | ||
|
|
16843bee56 | ||
|
|
144429b34d | ||
|
|
c7d1e15015 | ||
|
|
0a06538f80 | ||
|
|
18561ee776 | ||
|
|
288df9e3f5 | ||
|
|
cc9d731b8a | ||
|
|
fc8d97628f | ||
|
|
37c816a1ce | ||
|
|
d6a9b1cb3f | ||
|
|
9e3d056cc1 | ||
|
|
a7f76b5604 | ||
|
|
c00fd8cfc7 | ||
|
|
88ecf48cb8 | ||
|
|
6287ae1c09 | ||
|
|
06653234d0 | ||
|
|
2d0fd75ed8 | ||
|
|
b020cc9cff | ||
|
|
3482221fb2 | ||
|
|
ac3f8d96b5 | ||
|
|
a3ebe08d16 | ||
|
|
1dfdaeeee0 | ||
|
|
f6702fc01e | ||
|
|
f6e770b916 | ||
|
|
aa4d17a5c1 |
No files matched your search
+32
-18
@@ -1,33 +1,47 @@
|
|||||||
FROM phusion/baseimage:0.9.8
|
FROM osixia/baseimage:0.6.0
|
||||||
MAINTAINER Nick Stenning <nick@whiteink.com>
|
MAINTAINER Bertrand Gouny <bertrand.gouny@osixia.fr>
|
||||||
|
|
||||||
ENV HOME /root
|
# From Nick Stenning's work
|
||||||
|
# https://github.com/nickstenning/docker-slapd
|
||||||
|
|
||||||
|
# Default configuration: can be overridden at the docker command line
|
||||||
|
ENV LDAP_ADMIN_PWD toor
|
||||||
|
ENV LDAP_ORGANISATION Example Inc.
|
||||||
|
ENV LDAP_DOMAIN example.com
|
||||||
|
|
||||||
|
# /!\ To store the data outside the container,
|
||||||
|
# mount /var/lib/ldap and /etc/ldap/slapd.d as a data volume add
|
||||||
|
# -v /some/host/directory:/var/lib/ldap and -v /some/other/host/directory:/etc/ldap/slapd.d
|
||||||
|
# to the run command
|
||||||
|
|
||||||
# Disable SSH
|
# Disable SSH
|
||||||
RUN rm -rf /etc/service/sshd /etc/my_init.d/00_regen_ssh_host_keys.sh
|
# RUN rm -rf /etc/service/sshd /etc/my_init.d/00_regen_ssh_host_keys.sh
|
||||||
|
|
||||||
|
# Enable dnsmasq
|
||||||
|
RUN /sbin/enable-service dnsmasq
|
||||||
|
|
||||||
# Use baseimage-docker's init system.
|
# Use baseimage-docker's init system.
|
||||||
CMD ["/sbin/my_init"]
|
CMD ["/sbin/my_init"]
|
||||||
|
|
||||||
# Configure apt
|
# Resynchronize the package index files from their sources
|
||||||
RUN echo 'deb http://us.archive.ubuntu.com/ubuntu/ precise universe' >> /etc/apt/sources.list
|
|
||||||
RUN apt-get -y update
|
RUN apt-get -y update
|
||||||
|
|
||||||
# Install slapd
|
# Install openldap (slapd) and ldap-utils
|
||||||
RUN LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -y slapd
|
RUN LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends slapd ldap-utils openssl
|
||||||
|
|
||||||
# Default configuration: can be overridden at the docker command line
|
|
||||||
ENV LDAP_ROOTPASS toor
|
|
||||||
ENV LDAP_ORGANISATION Acme Widgets Inc.
|
|
||||||
ENV LDAP_DOMAIN example.com
|
|
||||||
|
|
||||||
|
# Expose ldap default port
|
||||||
EXPOSE 389
|
EXPOSE 389
|
||||||
|
|
||||||
|
# Create TLS certificats directory
|
||||||
|
RUN mkdir /etc/ldap/ssl
|
||||||
|
|
||||||
|
# Add config directory
|
||||||
|
RUN mkdir /etc/ldap/config
|
||||||
|
ADD service/slapd/config /etc/ldap/config
|
||||||
|
|
||||||
|
# Add slapd deamon
|
||||||
RUN mkdir /etc/service/slapd
|
RUN mkdir /etc/service/slapd
|
||||||
ADD slapd.sh /etc/service/slapd/run
|
ADD service/slapd/slapd.sh /etc/service/slapd/run
|
||||||
|
|
||||||
# To store the data outside the container, mount /var/lib/ldap as a data volume
|
|
||||||
|
|
||||||
|
# Clear out the local repository of retrieved package files
|
||||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
# vim:ts=8:noet:
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2014 Osixia
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
NAME = nikolaik/openldap
|
||||||
|
VERSION = 0.9.2
|
||||||
|
|
||||||
|
.PHONY: all build test tag_latest release
|
||||||
|
|
||||||
|
all: build
|
||||||
|
|
||||||
|
build:
|
||||||
|
docker.io build -t $(NAME):$(VERSION) --rm .
|
||||||
|
|
||||||
|
test:
|
||||||
|
env NAME=$(NAME) VERSION=$(VERSION) ./test.sh debug
|
||||||
|
|
||||||
|
tag_latest:
|
||||||
|
docker.io tag $(NAME):$(VERSION) $(NAME):latest
|
||||||
|
|
||||||
|
release: build test tag_latest
|
||||||
|
@if ! docker.io images $(NAME) | awk '{ print $$2 }' | grep -q -F $(VERSION); then echo "$(NAME) version $(VERSION) is not yet built. Please run 'make build'"; false; fi
|
||||||
|
docker.io push $(NAME)
|
||||||
|
@echo "*** Don't forget to run 'twgit release finish' :)"
|
||||||
|
|
||||||
@@ -1,38 +1,33 @@
|
|||||||
## slapd
|
# docker-openldap
|
||||||
|
|
||||||
A basic configuration of the OpenLDAP server, slapd, with support for data
|
Fork of Nick Stenning docker-slapd :
|
||||||
volumes.
|
https://github.com/nickstenning/docker-slapd
|
||||||
|
|
||||||
This image will initialize a basic configuration of slapd. Most common schemas
|
Add support of tls.
|
||||||
are preloaded (all the schemas that come preloaded with the default Ubuntu
|
|
||||||
Precise install of slapd), but the only record added to the directory will be
|
|
||||||
the root organisational unit.
|
|
||||||
|
|
||||||
You can (and should) configure the following by providing environment variables
|
### How to use tls
|
||||||
to `docker run`:
|
|
||||||
|
|
||||||
- `LDAP_DOMAIN` sets the LDAP root domain. (e.g. if you provide `foo.bar.com`
|
Add `-v some/host/dir:/etc/ldap/ssl` and `--dns=127.0.0.1` to the run command.
|
||||||
here, the root of your directory will be `dc=foo,dc=bar,dc=com`)
|
|
||||||
- `LDAP_ORGANISATION` sets the human-readable name for your organisation (e.g.
|
|
||||||
`Acme Widgets Inc.`)
|
|
||||||
- `LDAP_ROOTPASS` sets the LDAP admin user password (i.e. the password for
|
|
||||||
`cn=admin,dc=example,dc=com` if your domain was `example.com`)
|
|
||||||
|
|
||||||
For example, to start a container running slapd for the `mycorp.com` domain,
|
`some/host/dir` must contain a least 3 files :
|
||||||
with data stored in `/data/ldap` on the host, use the following:
|
- `ca.crt` certificate authority certificate
|
||||||
|
- `ldap.crt` ldap server certificate
|
||||||
|
- `ldap.key` ldap server certificate private key
|
||||||
|
|
||||||
docker run -v /data/ldap:/var/lib/ldap \
|
and optionaly `dhparam.pem` this file is genereted automaticaly if not present.
|
||||||
-e LDAP_DOMAIN=mycorp.com \
|
|
||||||
-e LDAP_ORGANISATION="My Mega Corporation" \
|
|
||||||
-e LDAP_ROOTPASS=s3cr3tpassw0rd \
|
|
||||||
-d nickstenning/slapd
|
|
||||||
|
|
||||||
You can find out which port the LDAP server is bound to on the host by running
|
`--dns=127.0.0.1` allow to use the certificate cn correctly.
|
||||||
`docker ps` (or `docker port <container_id> 389`). You could then load an LDIF
|
|
||||||
file (to set up your directory) like so:
|
|
||||||
|
|
||||||
ldapadd -h localhost -p <host_port> -c -x -D cn=admin,dc=mycorp,dc=com -W -f
|
|
||||||
data.ldif
|
|
||||||
|
|
||||||
**NB**: Please be aware that by default docker will make the LDAP port
|
### Example
|
||||||
accessible from anywhere if the host firewall is unconfigured.
|
|
||||||
|
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 \
|
||||||
|
-e LDAP_ORGANISATION="Example Corp." \
|
||||||
|
-e LDAP_ADMIN_PWD=toor \
|
||||||
|
-p 389:389 -d osixia/openldap
|
||||||
|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
dn: cn=config
|
||||||
|
changetype: modify
|
||||||
|
replace: olcTLSCACertificateFile
|
||||||
|
olcTLSCACertificateFile: /etc/ldap/ssl/ca.crt
|
||||||
|
-
|
||||||
|
replace: olcTLSCertificateFile
|
||||||
|
olcTLSCertificateFile: /etc/ldap/ssl/ldap.crt
|
||||||
|
-
|
||||||
|
replace: olcTLSCertificateKeyFile
|
||||||
|
olcTLSCertificateKeyFile: /etc/ldap/ssl/ldap.key
|
||||||
|
-
|
||||||
|
replace: olcTLSDHParamFile
|
||||||
|
olcTLSDHParamFile: /etc/ldap/ssl/dhparam.pem
|
||||||
|
-
|
||||||
|
replace: olcTLSVerifyClient
|
||||||
|
olcTLSVerifyClient: never
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
dn: cn=autofs,cn=schema,cn=config
|
||||||
|
changetype: add
|
||||||
|
objectClass: olcSchemaConfig
|
||||||
|
cn: autofs
|
||||||
|
olcAttributeTypes: {0}( 1.3.6.1.1.1.1.25 NAME 'automountInformation' DESC 'Inf
|
||||||
|
ormation used by the autofs automounter' EQUALITY caseExactIA5Match SYNTAX 1.
|
||||||
|
3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
|
||||||
|
olcObjectClasses: {0}( 1.3.6.1.1.1.1.13 NAME 'automount' DESC 'An entry in an
|
||||||
|
automounter map' SUP top STRUCTURAL MUST ( cn $ automountInformation $ object
|
||||||
|
class ) MAY description )
|
||||||
|
olcObjectClasses: {1}( 1.3.6.1.4.1.2312.4.2.2 NAME 'automountMap' DESC 'An gro
|
||||||
|
up of related automount objects' SUP top STRUCTURAL MUST ou )
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
dn: cn=config
|
||||||
|
changetype: modify
|
||||||
|
replace: olcLogLevel
|
||||||
|
olcLogLevel: stats
|
||||||
Executable
+89
@@ -0,0 +1,89 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
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 database"
|
||||||
|
|
||||||
|
cat <<EOF | debconf-set-selections
|
||||||
|
slapd slapd/internal/generated_adminpw password ${LDAP_ADMIN_PWD}
|
||||||
|
slapd slapd/internal/adminpw password ${LDAP_ADMIN_PWD}
|
||||||
|
slapd slapd/password2 password ${LDAP_ADMIN_PWD}
|
||||||
|
slapd slapd/password1 password ${LDAP_ADMIN_PWD}
|
||||||
|
slapd slapd/dump_database_destdir string /var/backups/slapd-VERSION
|
||||||
|
slapd slapd/domain string ${LDAP_DOMAIN}
|
||||||
|
slapd shared/organization string ${LDAP_ORGANISATION}
|
||||||
|
slapd slapd/backend string HDB
|
||||||
|
slapd slapd/purge_database boolean true
|
||||||
|
slapd slapd/move_old_database boolean true
|
||||||
|
slapd slapd/allow_ldap_v2 boolean false
|
||||||
|
slapd slapd/no_configuration boolean false
|
||||||
|
slapd slapd/dump_database select when needed
|
||||||
|
EOF
|
||||||
|
|
||||||
|
dpkg-reconfigure -f noninteractive slapd
|
||||||
|
|
||||||
|
touch /var/lib/ldap/docker_bootstrapped
|
||||||
|
|
||||||
|
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
|
||||||
|
if [ -e /etc/ldap/ssl/ldap.crt ] && [ -e /etc/ldap/ssl/ldap.key ] && [ -e /etc/ldap/ssl/ca.crt ]; then
|
||||||
|
status "certificates found"
|
||||||
|
|
||||||
|
chmod 600 /etc/ldap/ssl/ldap.key
|
||||||
|
|
||||||
|
# create DHParamFile if not found
|
||||||
|
[ -f /etc/ldap/ssl/dhparam.pem ] || openssl dhparam -out /etc/ldap/ssl/dhparam.pem 2048
|
||||||
|
|
||||||
|
ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/ldap/config/auto/tls.ldif -Q
|
||||||
|
|
||||||
|
# add fake dnsmasq route to certificate cn
|
||||||
|
cn=$(openssl x509 -in /etc/ldap/ssl/ldap.crt -subject -noout | sed -n 's/.*CN=\(.*\)\/*\(.*\)/\1/p')
|
||||||
|
echo "127.0.0.1 " $cn >> /etc/dhosts
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Replication
|
||||||
|
# todo :)
|
||||||
|
|
||||||
|
# Other config files
|
||||||
|
for f in $(find /etc/ldap/config -maxdepth 1 -name \*.ldif -type f); do
|
||||||
|
status "Processing file ${f}"
|
||||||
|
ldapmodify -Y EXTERNAL -H ldapi:/// -f $f -Q
|
||||||
|
done
|
||||||
|
|
||||||
|
kill -INT `cat /run/slapd/slapd.pid`
|
||||||
|
|
||||||
|
touch /etc/ldap/config/docker_bootstrapped
|
||||||
|
|
||||||
|
else
|
||||||
|
status "found already-configured slapd"
|
||||||
|
fi
|
||||||
|
|
||||||
|
status "starting slapd on default port 389"
|
||||||
|
set -x
|
||||||
|
|
||||||
|
exec /usr/sbin/slapd -h "ldap:/// ldapi:///" -u openldap -g openldap -d -1
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
status () {
|
|
||||||
echo "---> ${@}" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
set -x
|
|
||||||
: LDAP_ROOTPASS=${LDAP_ROOTPASS}
|
|
||||||
: LDAP_DOMAIN=${LDAP_DOMAIN}
|
|
||||||
: LDAP_ORGANISATION=${LDAP_ORGANISATION}
|
|
||||||
|
|
||||||
if [ ! -e /var/lib/ldap/docker_bootstrapped ]; then
|
|
||||||
status "configuring slapd for first run"
|
|
||||||
|
|
||||||
cat <<EOF | debconf-set-selections
|
|
||||||
slapd slapd/internal/generated_adminpw password ${LDAP_ROOTPASS}
|
|
||||||
slapd slapd/internal/adminpw password ${LDAP_ROOTPASS}
|
|
||||||
slapd slapd/password2 password ${LDAP_ROOTPASS}
|
|
||||||
slapd slapd/password1 password ${LDAP_ROOTPASS}
|
|
||||||
slapd slapd/dump_database_destdir string /var/backups/slapd-VERSION
|
|
||||||
slapd slapd/domain string ${LDAP_DOMAIN}
|
|
||||||
slapd shared/organization string ${LDAP_ORGANISATION}
|
|
||||||
slapd slapd/backend string HDB
|
|
||||||
slapd slapd/purge_database boolean true
|
|
||||||
slapd slapd/move_old_database boolean true
|
|
||||||
slapd slapd/allow_ldap_v2 boolean false
|
|
||||||
slapd slapd/no_configuration boolean false
|
|
||||||
slapd slapd/dump_database select when needed
|
|
||||||
EOF
|
|
||||||
|
|
||||||
dpkg-reconfigure -f noninteractive slapd
|
|
||||||
|
|
||||||
touch /var/lib/ldap/docker_bootstrapped
|
|
||||||
else
|
|
||||||
status "found already-configured slapd"
|
|
||||||
fi
|
|
||||||
|
|
||||||
status "starting slapd"
|
|
||||||
set -x
|
|
||||||
exec /usr/sbin/slapd -h "ldap:///" -u openldap -g openldap -d 0
|
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
# sudo ./test.sh
|
||||||
|
# add -v for verbose mode (or type whatever you like !) :p
|
||||||
|
|
||||||
|
. test/config-repository
|
||||||
|
. test/tools/run.sh
|
||||||
|
|
||||||
|
run_test simple.sh "dn: dc=example,dc=com"
|
||||||
|
run_test tls.sh "dn: dc=example,dc=com"
|
||||||
|
run_test db.sh "dn: dc=otherdomain,dc=com"
|
||||||
|
|
||||||
|
. test/tools/end.sh
|
||||||
|
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
# sudo ./test.sh
|
||||||
|
# add -v for verbose mode (or type whatever you like !) :p
|
||||||
|
|
||||||
|
. test/config
|
||||||
|
. test/tools/run.sh
|
||||||
|
|
||||||
|
run_test tools/build-container.sh "Successfully built"
|
||||||
|
run_test simple.sh "dn: dc=example,dc=com"
|
||||||
|
run_test tls.sh "dn: dc=example,dc=com"
|
||||||
|
run_test db.sh "dn: dc=otherdomain,dc=com"
|
||||||
|
|
||||||
|
. test/tools/end.sh
|
||||||
|
|
||||||
Executable
+8
@@ -0,0 +1,8 @@
|
|||||||
|
testImage=openldap-test
|
||||||
|
testContainer=openldap-test-container
|
||||||
|
testDir=/osixia-test-docker-openldap
|
||||||
|
|
||||||
|
export testImage
|
||||||
|
export testContainer
|
||||||
|
export testDir
|
||||||
|
|
||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
testImage=nikolaik/openldap:latest
|
||||||
|
testContainer=openldap-repository-test-container
|
||||||
|
testDir=/osixia-repository-test-docker-openldap
|
||||||
|
|
||||||
|
export testImage
|
||||||
|
export testContainer
|
||||||
|
export testDir
|
||||||
Executable
+23
@@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
dir=$(dirname $0)
|
||||||
|
|
||||||
|
if [ -d "$testDir" ]; then
|
||||||
|
rm -r $testDir
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir $testDir
|
||||||
|
mkdir $testDir/db
|
||||||
|
mkdir $testDir/config
|
||||||
|
|
||||||
|
runOptions="-e LDAP_DOMAIN=otherdomain.com -v $testDir/db:/var/lib/ldap -v $testDir/config:/etc/ldap/slapd.d"
|
||||||
|
. $dir/tools/run-container.sh
|
||||||
|
$dir/tools/delete-container.sh
|
||||||
|
|
||||||
|
runOptions="-v $testDir/db:/var/lib/ldap -v $testDir/config:/etc/ldap/slapd.d"
|
||||||
|
. $dir/tools/run-container.sh
|
||||||
|
echo "ldapsearch -x -h $IP -b dc=otherdomain,dc=com"
|
||||||
|
ldapsearch -x -h $IP -b dc=otherdomain,dc=com
|
||||||
|
|
||||||
|
rm -r $testDir
|
||||||
|
$dir/tools/delete-container.sh
|
||||||
Executable
+9
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
dir=$(dirname $0)
|
||||||
|
. $dir/tools/run-container.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
+9
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
dir=$(dirname $0)
|
||||||
|
. $dir/tls/run.sh
|
||||||
|
|
||||||
|
echo "ldapsearch -x -h $certCN -b dc=example,dc=com -ZZ"
|
||||||
|
ldapsearch -x -h $certCN -b dc=example,dc=com -ZZ
|
||||||
|
|
||||||
|
. $dir/tls/end.sh
|
||||||
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
|
||||||
Executable
+16
@@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
runOptions="--dns=127.0.0.1 -v `pwd`/test/tls/ssl:/etc/ldap/ssl"
|
||||||
|
. $dir/tools/run-container.sh
|
||||||
|
|
||||||
|
cert=$(echo $dir/tls/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
|
||||||
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDZzCCAh+gAwIBAgIEU2ehnzANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDExhU
|
||||||
|
ZXN0IENBIENvbXBhbnkgLSBPc2l4aWEwHhcNMTQwNTA1MTQzNTExWhcNMTUwNTA1
|
||||||
|
MTQzNTExWjAjMSEwHwYDVQQDExhUZXN0IENBIENvbXBhbnkgLSBPc2l4aWEwggFS
|
||||||
|
MA0GCSqGSIb3DQEBAQUAA4IBPwAwggE6AoIBMQDdf+DVT4rPGxNB1SwL6git8Lw1
|
||||||
|
AsEvd+rHAMKyCSRxbJywvtN/OKxVz4qWCkoRvcffG0uyoWRE+1w6DnT8ON+8uvuI
|
||||||
|
2wbrLydFxuZdouZZJiX0QbXWra9lQpDWO2EAiPFchbN/K9+fXwV4SpsI3B7bGwM/
|
||||||
|
sVtn6khbxvtzn+9yUmjIpA7q8i9NLVoX8UwagANtFIVE/Dc/MwaX7ayu6yYiNLXx
|
||||||
|
GHzWXzQcTS6vWcVaf+pkq6/zZdXn0jVNfqnwAu3ooTWO3BeuQvGaQeRpRVlM0lPh
|
||||||
|
oM7YFhR8b13Y5EmkZtSjoM+7ZOKF5mqBvluj65gIcQxnx4l4YCZ4MUVAlZBYc87h
|
||||||
|
2JSYrAlq6eBhJzkNDi21jqtqSr1i08XICZrz4Vk8lrexWbRGzyz537La1LYNAgMB
|
||||||
|
AAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcEADAdBgNVHQ4E
|
||||||
|
FgQUnod7FQfSDLyWVeBSTTdCriQoEHYwDQYJKoZIhvcNAQELBQADggExAGtv/8Ot
|
||||||
|
3Acs+KlR+0OBtnWe6sfzfQ2fRJvol7szp0Nto+zTZLbtCEvNGIVkd8eLrm9a9soa
|
||||||
|
pY/pC6dAPPZHho/G46quSjtSARU/tlbabkRsCfHiWIvtjqKIyzqk+YjOc767pd0G
|
||||||
|
iWKxF98sI4fKdlZ+Aqw+9vO2KwQMYEtrIiCbPUYMff/BzxkrwUBnYcTjISPwEd3Z
|
||||||
|
JylfG78qsB8N6UOf89jRX2O7HCy6CGJvcuxbkwaCd5iqgLhBXj9bU7xgy/A2udav
|
||||||
|
JV/uV+vWDcy8cI22Xz1jfPpimAZjv+Qb3NjDX5nxjTciAEsNges0QdxZ71dfEqo+
|
||||||
|
DGSImtM8ORivPw7oXADztCC+11KcV4THa6wmu+Sblsxe46ldAwb6MLvMN04zALUN
|
||||||
|
mW4ojToqYgz9Jgc=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
-----BEGIN DH PARAMETERS-----
|
||||||
|
MIIBCAKCAQEAwC8hQ6nZ2kNNmZAGGYN8++rUvNlDjKqdwWubUnqY08ng6FfGcouL
|
||||||
|
VSvgsF3LeERW/h4hrkgN983QjwrbBOrNp+7B59lhCs6Acvi87dXf3iaGNy4Gca43
|
||||||
|
ERVkAJ7IWdXydyb9COANRtmBb1JvvYMAeVeMdofk8EcOW/kUV2adAQKluAcVhgRQ
|
||||||
|
Pesp5i6Lv1kN5zVHDGkrJz5h0Mzi35aYia0gSnVCqEzmU7Omnz/gXY3Jdx91ym5Y
|
||||||
|
2dTZuUZgIhco2bfPbhDl/1g0a1PWz7rxw24KJloNZC3nEt3JqIto83GsgaUtYxFT
|
||||||
|
EWINSpghTjl4Z0CGCamJ6HXsNJGaVUXuGwIBAg==
|
||||||
|
-----END DH PARAMETERS-----
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDAzCCAbugAwIBAgIEU2eiHTANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDExhU
|
||||||
|
ZXN0IENBIENvbXBhbnkgLSBPc2l4aWEwHhcNMTQwNTA1MTQzNzE3WhcNMjQwNTAy
|
||||||
|
MTQzNzE3WjBAMR4wHAYDVQQKExVUZXN0IENvbXBhbnkgLSBPc2l4aWExHjAcBgNV
|
||||||
|
BAMTFWxkYXAtdGVzdC5leGFtcGxlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
|
||||||
|
gYkCgYEA0/9/VYQARBLg7TrEiO4DAjcBAt3u3IQNNo8YdsL9iGwmRTPOspxOBVuQ
|
||||||
|
2AVEIuT+4KLnm01q1NA+tEvXdfXI9eIN5zjCVTdt6VqwrF9E3zWxYEkuSJ4FWOhN
|
||||||
|
dc0837hWBg+mBl/d6fSTkmeRc9fpwwr1jK7t10/BIzMr/pCzf10CAwEAAaN2MHQw
|
||||||
|
DAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMD
|
||||||
|
B6AAMB0GA1UdDgQWBBThLwuObrBzlp4qsKs0NHFMrCgn8jAfBgNVHSMEGDAWgBSe
|
||||||
|
h3sVB9IMvJZV4FJNN0KuJCgQdjANBgkqhkiG9w0BAQsFAAOCATEAiAl9RGibKsfQ
|
||||||
|
5Vbz2ZjsykzYj9Dhkxp7fc7RdrK0SEHGXn8Qeg5jf+j9DtfhTrZPVF7Jn4WOvuqh
|
||||||
|
okQPrwRaDox6rtFPjsIR9JIO3/N2OvA3ozQyWqzB1ksU7CHJ5jGRskHBftSH2xwF
|
||||||
|
kdGvSMIAmr9VpZ/sp4ykmADWC/bfz8BXYJDOsCBzJMtss/12hBqiJQhSsuBAsOT7
|
||||||
|
40hG0t2S7mjGHWDF9PoARmNQ7X3Xc8j7V+dXLpNfZfc+htgI27WcOv7al4kxd//p
|
||||||
|
22a77U/q+9B1CV8T2q1UTRnQqPHxtgoRLd+5qzEtzBW37ecAs2eAs9Z7D3O/fScu
|
||||||
|
v0RxHSpnZDtL/JZcf3KO96l4sqCp6Ue5Ldg3tOvD4O46hjrlvUYnHcDdJjNYZ7rD
|
||||||
|
f5kGXs20Mg==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIICWwIBAAKBgQDT/39VhABEEuDtOsSI7gMCNwEC3e7chA02jxh2wv2IbCZFM86y
|
||||||
|
nE4FW5DYBUQi5P7gouebTWrU0D60S9d19cj14g3nOMJVN23pWrCsX0TfNbFgSS5I
|
||||||
|
ngVY6E11zTzfuFYGD6YGX93p9JOSZ5Fz1+nDCvWMru3XT8EjMyv+kLN/XQIDAQAB
|
||||||
|
AoGAHY7OgKxWYydkr/7VHyhcSAdGP1GVN667ruM1rH1UXxyBG331MEcFw853+/6D
|
||||||
|
+P+Hn+dmtmsNXZ2pWHcIk/xQZ+MEsAdm+OZ1qpBJjHA0izJ6sqZaNxSToKCR4SHM
|
||||||
|
/ACPAKqM9r2g1jqXzLKzgHBVc25Fonb1vUilTpC3YfaN+sECQQDmQGEcEK9Lvyi9
|
||||||
|
RV1fONDP3Z9cPRaSzpjUjlQAWNbhvcoUYV4AOy+tVClDErRIs/Oo+wCOL+bHlMom
|
||||||
|
zghcmxThAkEA67SPV0pNFR32gXvRZT4uKvCJcAjmNY4LMpet5DJ41Spq6+lbqXwY
|
||||||
|
1e87zEei1UvdmEXOjVsa1wXcg8Ks+/59/QJAHh+CFOfh5ykFLW3rv09xkiBOfwTG
|
||||||
|
9UHuILDWMI1u322zCGOMpr8Xh7ehBlNmHrTcRdlAw1lk+etvXxBJa8QmQQJABbNT
|
||||||
|
OCg63wTfflgxQ0KSuUUh/cypTKhHywxyDy/NTlJ9TYFSTzIKI7pqdtFQtdnk3Rbr
|
||||||
|
HO4UIxkoMSOXLW0FPQJARScXqZd7Lmwlw+ovAubfdOZdxjWGFZLRRZifiYZqtnQ1
|
||||||
|
aw8PjdkaIPxLjCwSOelV9SsMue6a7nvkxKEn6QbT0w==
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
Executable
+5
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
docker.io build -t $testImage .
|
||||||
|
#docker.io build --no-cache=true -t $testImage .
|
||||||
|
|
||||||
Executable
+9
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# remove test container
|
||||||
|
res=$(docker.io ps -a | grep -c "$testContainer")
|
||||||
|
|
||||||
|
if [ $res -ne 0 ]; then
|
||||||
|
docker.io stop $testContainer
|
||||||
|
docker.io rm $testContainer
|
||||||
|
fi
|
||||||
Executable
+8
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# remove test image
|
||||||
|
res=$(docker.io images | grep -c "$testImage")
|
||||||
|
|
||||||
|
if [ $res -ne 0 ]; then
|
||||||
|
docker.io rmi $testImage
|
||||||
|
fi
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
rm -rf $testDir
|
||||||
|
./test/tools/delete-container.sh
|
||||||
|
./test/tools/delete-image.sh > /dev/null 2>&1
|
||||||
|
|
||||||
|
echo "------- End -------"
|
||||||
|
echo $error " failed " $ok " succeeded"
|
||||||
|
|
||||||
|
if [ "$error" -eq 0 ]; then
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
mkdir -p $testDir
|
||||||
|
|
||||||
|
dir=$(dirname $0)
|
||||||
|
$dir/delete-container.sh
|
||||||
|
$dir/delete-image.sh
|
||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
echo "docker.io run --name $testContainer $runOptions -d $testImage $runCommand"
|
||||||
|
ID=`docker.io run --name $testContainer $runOptions -d $testImage $runCommand`
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
echo " --> Obtaining IP"
|
||||||
|
IP=`docker.io inspect -f "{{ .NetworkSettings.IPAddress }}" $ID`
|
||||||
|
if [ "$IP" = "" ]; then
|
||||||
|
abort "Unable to obtain container IP"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo " -->" $IP
|
||||||
|
fi
|
||||||
Executable
+46
@@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
# sudo ./test.sh
|
||||||
|
# add -v for verbose mode (or type whatever you like !) :p
|
||||||
|
|
||||||
|
verbose=$1
|
||||||
|
error=0
|
||||||
|
ok=0
|
||||||
|
|
||||||
|
echo_start () {
|
||||||
|
echo "------- Test: $* -------"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo_error () {
|
||||||
|
echo "\n$(tput setaf 1)/!\ $* failed$(tput sgr0)\n"
|
||||||
|
error=`expr $error + 1`
|
||||||
|
}
|
||||||
|
|
||||||
|
echo_ok () {
|
||||||
|
echo "\n--> $* ok\n"
|
||||||
|
ok=`expr $ok + 1`
|
||||||
|
}
|
||||||
|
|
||||||
|
run_test () {
|
||||||
|
test=$1
|
||||||
|
out=test/test.out
|
||||||
|
|
||||||
|
echo_start $test
|
||||||
|
|
||||||
|
if [ -z ${verbose} ]; then
|
||||||
|
./test/$test > $out 2>&1
|
||||||
|
else
|
||||||
|
./test/$test | tee $out 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$(grep -c "$2" $out)" -eq 0 ]; then
|
||||||
|
echo_error $test
|
||||||
|
else
|
||||||
|
echo_ok $test
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm $out
|
||||||
|
}
|
||||||
|
|
||||||
|
./test/tools/prepare.sh > /dev/null 2>&1
|
||||||
Reference in new issue
Block a user