Complete Active Directory teaching environment based on dockurr/windows: - Windows Server domain controller, Windows 11 client, Debian 12 client - docker-compose orchestration, env-driven configuration - Bilingual documentation (FR + EN) for students - Dual approach (GUI + PowerShell) in every procedure - Instructor course plan and reference scripts - RDP launcher scripts for Linux, macOS and Windows Made by AcadéNice - https://acadenice.fr/
43 lines
1.2 KiB
Bash
Executable file
43 lines
1.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Prépare linux01 sans rejoindre le domaine (geste laissé à l'apprenant).
|
|
# Fait par AcadéNice - https://acadenice.fr/
|
|
|
|
set -euo pipefail
|
|
|
|
AD_DOMAIN="${AD_DOMAIN:-corp.lab}"
|
|
DC_HOST="${DC_CONTAINER_IP:-lab-dc01}"
|
|
|
|
DC_IP="$(getent hosts "$DC_HOST" | awk '{print $1}' || true)"
|
|
|
|
if [ -n "$DC_IP" ]; then
|
|
cat > /etc/resolv.conf <<EOF
|
|
nameserver $DC_IP
|
|
search $AD_DOMAIN
|
|
EOF
|
|
# Override nécessaire : dockurr/windows NAT la VM, l'IP annoncée par DNS
|
|
# (ex 172.30.0.2) n'est pas routable depuis ce conteneur. On redirige donc
|
|
# les noms clés vers l'IP du conteneur DC, que dockurr DNAT vers la VM.
|
|
if ! grep -q "$AD_DOMAIN" /etc/hosts; then
|
|
echo "$DC_IP $AD_DOMAIN dc01.$AD_DOMAIN dc01" >> /etc/hosts
|
|
fi
|
|
fi
|
|
|
|
mkdir -p /run/dbus
|
|
[ -S /run/dbus/system_bus_socket ] || dbus-daemon --system --fork
|
|
|
|
if [ -x /usr/sbin/sshd ]; then
|
|
ssh-keygen -A >/dev/null 2>&1 || true
|
|
grep -q pam_mkhomedir /etc/pam.d/common-session || \
|
|
echo "session optional pam_mkhomedir.so skel=/etc/skel umask=077" >> /etc/pam.d/common-session
|
|
/usr/sbin/sshd -D &
|
|
fi
|
|
|
|
cat <<EOF
|
|
linux01 prêt. Prochaine étape (côté apprenant) :
|
|
|
|
docker exec -it lab-linux01 bash
|
|
realm discover $AD_DOMAIN
|
|
|
|
EOF
|
|
|
|
exec sleep infinity
|