Déployer un serveur DHCP avec Docker

TG
  • Tommy Gingras
    Studio Webux S.E.N.C
    23 Mars 2019

Objectif

Déployer un serveur DHCP 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 (Il ne faut pas déployer plusieurs serveurs DHCP sur un même réseau)

Étape 1 - Récupérer l’image docker

L’image est disponible sur le docker hub et sur github

github

docker hub

Lancer cette commande 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 exemples 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 exemples/dhcpd.conf

Faire les modifications désirées.

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, (cette vidéo montre seulement l’installation du client) Démo DHCP + PXE Centos 7.6 avec Kickstart

Le processus est lent, c’est dû au service FTP qui est utilisé. Pour améliorer les performances, il est préférable d’utiliser HTTP et NFS.