There are articles to do this in a pure Debian environment, such as the excellent one I used as a base from Raphaël Hertzog.
But my deployment server in that case is a CentOS 6 one, so I needed some adaptations to make it work.
My target system is a HPE ProLiant BL 460 Gen9, equiped with bnx2x NICs (Broadcom BCM 57840 10/20 Gb/s cards). And during a network boot install, I have had messages indicating that the firmware was missing (failed to load bnx2x/bnx2x-…)
So in order for my system to network boot, I needed to adapt my initrd and add the missing firmware in it (Debian’s policy prevents the distribution of
non-free firmware, which these are). The Firmware in my case is available as a standalone package at http://ftp.fr.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-bnx2x_0.43_all.deb (hint from this article)
So on your non-debian deployment server, you can do the following:
mkdir /tmp/fw cd /tmp/fw # This is the network boot environment required for booting Jessie wget http://ftp.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz [...] tar xvfz netboot.tar.gz [...] # Keep the kernel in your deployment infra mv debian-installer/amd64/linux /where/your/tftpboot/k/debian-8 # Extract the initrd to modify it wget http://ftp.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-bnx2x_0.43_all.deb [...] mkdir initrd cd initrd gzip -cd ../debian-installer/amd64/initrd.gz | cpio -ivdum [...] # You need the dpkg commdand to make your life easier (part of CentOS, Fedora or Mageia) dpkg -x ../firmware-bnx2x_0.43_all.deb . ls lib/firmware/ [...] # Should show you the firmware in the right place find . -print | cpio -o -H newc | gzip -c9 > /where/your/tftpboot/i/debian-8.img [...]
Now you can add an entry to your boot loader (grub2 in my case) for the network boot part (more info on Network boot and Debian at https://wiki.debian.org/PXEBootInstall)
menuentry 'Debian 8' { insmod gzio insmod part_gpt insmod ext2 insmod iso9660 linux /k/debian-8 ip=dhcp -- initrd /i/debian-8.img }
If you have another firmware to deal with, refer to the dedicated Debian page at https://wiki.debian.org/fr/firmware
After that your system should be able to network boot and install your Debian Jessie distribution on it.
The next step is to automate the installation, which consists just in changing the linux line in the grug conf file:
linux /k/debian-8 ip=dhcp auto priority=critical url=http://deploy-server/ks/debian-8 --
where the debian-8 file under the ks directory is just the preseed file you’ll build for your automatic installation.