Objectif
Déployer un DHCP serveur avec Docker et utiliser celui-ci pour faire des PXE boot.
Pré-requis
- docker
- docker-compose
- linux (Centos ou Ubuntu)
- un réseau pour tester (Plusieurs DHCP sur un même réseau empêche celui-ci de bien fonctionner)
Étape 1 - Récupérer l'image docker
L’image est disponible sur le docker hub et sur github
https://github.com/studiowebux/dhcp-server
https://hub.docker.com/r/studiowebux/dhcp-server
sur votre système :
docker pull studiowebux/dhcp-server
Étape 2 - Lancer le conteneur
Vous pouvez lancer l’image manuellement ou utiliser le docker-compose disponible sur Github.
docker run -it --name dhcp \
-p 67:67/udp \
-p 67:67 \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v /tmp/$(mktemp -d):/run \
--privileged \
--net host \
dhcp-server:latest
Ou avec docker-compose
git clone https://github.com/studiowebux/dhcp-server.git
cd dhcp-server/
docker-compose up -d
Étape 3 - Modifier le dhcpd.conf
Deux options sont possibles:
- Changer le fichier dans examples et build l'image de nouveau
- Ajouter un volume avec votre configuration
Dans les deux cas, regarder dans le dossier examples et à partir de ce fichier, vous pouvez configurer votre DHCP pour l'adapter à votre infrastructure.
git clone https://github.com/studiowebux/dhcp-server.git
cd dhcp-server/
nano examples/dhcpd.conf
# Faire les modifications voulues.
docker build . -t dhcp-server:latest
Votre image personnalisée sera nommée dhcp-server:latest
Conclusion
Voici une vidéo qui montre l'installation d'un client via PXE avec ce DHCP.
Le processus est un peu lent, mais c'est du au service FTP qui est utilisé pour améliorer les performances il est préférable d'utiliser HTTP et NFS.
Pour savoir comment faire un PXE Serveur: