diff --git a/gestion/gen_confs/pxeboot/config b/gestion/gen_confs/pxeboot/config new file mode 100755 index 00000000..f61b6334 --- /dev/null +++ b/gestion/gen_confs/pxeboot/config @@ -0,0 +1,76 @@ +#!/bin/bash -e +# +# pxeboot.sh: création d'un répertoire TFTP de boot par PXE +# Copyright (C) 2008, Nicolas Dandrimont +# +# Utilisation : pxeboot.sh IP_SRV_TFTP + +# Définitions communes +TFTPROOT="/var/lib/tftpboot" +KSROOT="/var/www/pxe" +SKELETON="$TFTPROOT-base" +TMPDIR="/var/tmp/build-netboot" +ISODIR="/var/lib/tftpboot-g" +[[ $1 == "" ]] && echo "Il faut spécifier l'IP" && exit 1 +OWN_IP="$1" +/etc/init.d/nfs-kernel-server stop +umount /var/lib/tftpboot/livecd/ubuntu/* || true; + +# Définitions spécifiques au Sys Rescue CD +SYSRCCD_ARCHS="" +SYSRCCD_FTP="http://ftp.crans.org/pub/distributions/linux/systemrescuecd" + +# Définitions spécifiques à Debian +DEBIAN_DISTS="squeeze wheezy" +DEBIAN_ARCHS="i386 amd64" +DEBIAN_FTP="ftp://ftp.crans.org/debian/dists" + +#Image debian custom avec plus de drivers : http://kmuto.jp/debian/d-i/ +DEBIAN_BACKPORT_DISTS="squeeze" +DEBIAN_BACKPORT_ARCHS="i386 amd64" +DEBIAN_BACKPORT_FTP="ftp://cdimage.debian.org/cdimage/unofficial/backports/" + +# Définitions spécifiques à Ubuntu +UBUNTU_DISTS="natty oneiric precise quantal" +UBUNTU_ARCHS="i386 amd64" +UBUNTU_FTP="ftp://ftp.crans.org/ubuntu/dists" + +UBUNTU_LIVE="11.10 12.04 12.10" +# il faut modifier le nfs et mettre les images dans $ISODIR/ubuntu/ +# puis les monter et partager dans $TFTPROOT/livecd/ubuntu/$dist-$arch +UBUNTU_LIVE_TYPE="ubuntu xubuntu kubuntu" +UBUNTU_LIVE_ARCHS="i386 amd64" + +# Définitions spécifiques à Mandriva +MANDRIVA_DISTS="" +MANDRIVA_ARCHS="i586 x86_64" +MANDRIVA_FTP="ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official" + +# Définitions spécifiques à CentOS +CENTOS_DISTS="6.3" +CENTOS_ARCHS="i386 x86_64" +CENTOS_FTP="ftp://mirror.in2p3.fr/pub/linux/CentOS" + +# Définitions spécifiques à Fedora +FEDORA_DISTS="15 16 17" +FEDORA_ARCHS="i386 x86_64" +FEDORA_FTP="ftp://ftp.free.fr/mirrors/fedora.redhat.com/fedora/linux/" + +OPENSUSE_DISTS="11.4 12.1 12.2" +OPENSUSE_ARCHS="i386 x86_64" +OPENSUSE_FTP="ftp://ftp.free.fr/mirrors/ftp.opensuse.org/opensuse/distribution/" + +# Définitions spécifiques à FreeBSD +FREEBSD_DISTS="" +FREEBSD_ARCHS="i386 amd64" +FREEBSD_FTP="ftp://ftp.fr.freebsd.org/pub/FreeBSD/" + +# Définition spécifiques à NetBSD +#~ NETBSD_DIST="5.1 6.0" +#~ NETBSD_ARCHS="i386 amd64" +#~ NETBSD_FTP="ftp://iso.fr.netbsd.org/pub/NetBSD" + +# Définitions spécifiques à OpenBSD +OPENBSD_DIST="" +OPENBSD_ARCHS="i386 amd64" +OPENBSD_FTP="ftp://ftp.crans.org/pub/OpenBSD" diff --git a/gestion/gen_confs/pxeboot/mount_ubuntu_live b/gestion/gen_confs/pxeboot/mount_ubuntu_live new file mode 100755 index 00000000..0960726e --- /dev/null +++ b/gestion/gen_confs/pxeboot/mount_ubuntu_live @@ -0,0 +1,15 @@ +#!/bin/bash +. config + +for type in $UBUNTU_LIVE_TYPE; do + for dist in $UBUNTU_LIVE; do + for arch in $UBUNTU_LIVE_ARCHS; do + if test -e $ISODIR/ubuntu/$type-$dist-desktop-$arch.iso; then + mkdir -p $TFTPROOT/livecd/ubuntu/$type-$dist-$arch + mount -o loop $ISODIR/ubuntu/$type-$dist-desktop-$arch.iso $TFTPROOT/livecd/ubuntu/$type-$dist-$arch + fi + done + done +done +/etc/init.d/nfs-kernel-server start + diff --git a/gestion/gen_confs/pxeboot/pxeboot b/gestion/gen_confs/pxeboot/pxeboot new file mode 100755 index 00000000..ea4bf816 --- /dev/null +++ b/gestion/gen_confs/pxeboot/pxeboot @@ -0,0 +1,796 @@ +#!/bin/bash -e +# +# pxeboot.sh: création d'un répertoire TFTP de boot par PXE +# Copyright (C) 2008, Nicolas Dandrimont +# +# Utilisation : pxeboot.sh IP_SRV_TFTP + +# Définitions communes + +. config + +rm -rf $TFTPROOT || exit 1 + +#################################### +# Vérifications +#################################### +for type in $UBUNTU_LIVE_TYPE; do + for dist in $UBUNTU_LIVE; do + for arch in $UBUNTU_LIVE_ARCHS; do + if ! test -e $ISODIR/ubuntu/$type-$dist-desktop-$arch.iso + then echo "$ISODIR/ubuntu/$type-$dist-desktop-$arch.iso n'existe pas" && sleep 3; + fi + done + done +done + +mkdir -vp $TMPDIR +#mkdir -vp $TFTPROOT +#mkdir -vp $TFTPROOT/boot-screens +#mkdir -vp $TFTPROOT/pxelinux.cfg +# +############################################## +#cp $SKELETON/pxelinux.0 $TFTPROOT/ +cp -ra $SKELETON $TFTPROOT +#On redémarre de tftp +/etc/init.d/tftpd-hpa restart +############################################## + + +cat > $TFTPROOT/pxelinux.cfg/default << EOF +include /boot-screens/menu.cfg +default /boot-screens/vesamenu.c32 +prompt 0 +timeout 0 +EOF + +cat > $TFTPROOT/boot-screens/menu.cfg << EOF +menu hshift 20 +menu width 49 + +menu title Install-Party Cr@ns +menu background boot-screens/splash.png +menu vshift 18 +menu rows 5 +menu tabmsgrow 16 +menu timeoutrow 17 +menu tabmsg Press ENTER to boot or TAB to edit a menu entry +menu autoboot Starting Local System in # seconds + +prompt 0 + + +label bootlocal + menu label ^Boot from local disk + menu default + localboot 0 + timeout 200 #timeout which is displayed, Wait 10 seconds unless the user types somethin + totaltimeout 1200 #timeout which executes the default definitely, always boot after 2 minutes + +EOF + +########################### +# sysrescuecd # +########################### +for arch in $SYSRCCD_ARCHS; do + mkdir -p $TFTPROOT/sysrescuecd/$arch/ + wget -c $SYSRCCD_FTP/image/isolinux/initram.igz -O $TFTPROOT/sysrescuecd/$arch/initram.igz + wget -c $SYSRCCD_FTP/image/isolinux/rescue`echo $arch | sed -n 's/amd64/64/p'` -O $TFTPROOT/sysrescuecd/$arch/rescue +done + +if [[ $SYSRCCD_ARCHS != "" ]]; then +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu begin sysrescuecd + menu title Sysrescue Cd + label mainmenu + menu label ^Back.. + menu exit +EOF + +for arch in $SYSRCCD_ARCHS; do +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + label Sysrescuecd $arch + kernel sysrescuecd/$arch/rescue + append initrd=sysrescuecd/$arch/initram.igz dodhcp setkmap=fr boothttp=$SYSRCCD_HTTP/image/sysrcd.dat -- +EOF +done + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu end +EOF +fi +########################### +# Fin sysrescuecd # +########################### + + +########################### +# DEBIAN # +########################### + +for dist in $DEBIAN_DISTS; do + for arch in $DEBIAN_ARCHS; do + wget -c $DEBIAN_FTP/$dist/main/installer-$arch/current/images/netboot/netboot.tar.gz -O $TMPDIR/netboot-debian-$dist-$arch.tar.gz + mkdir -p $TMPDIR/netboot-debian-$dist-$arch/ + tar zxf $TMPDIR/netboot-debian-$dist-$arch.tar.gz -C $TMPDIR/netboot-debian-$dist-$arch/ + mkdir -p $TFTPROOT/debian-$dist/$arch + cp $TMPDIR/netboot-debian-$dist-$arch/debian-installer/$arch/initrd.gz $TFTPROOT/debian-$dist/$arch + cp $TMPDIR/netboot-debian-$dist-$arch/debian-installer/$arch/linux $TFTPROOT/debian-$dist/$arch + #~ wget -c $DEBIAN_FTP/$dist/main/installer-$arch/current/images/netboot/gtk/netboot.tar.gz -O $TMPDIR/netboot-debian-gtk-$dist-$arch.tar.gz + #~ mkdir -p $TMPDIR/netboot-debian-gtk-$dist-$arch/ + #~ tar zxf $TMPDIR/netboot-debian-gtk-$dist-$arch.tar.gz -C $TMPDIR/netboot-debian-gtk-$dist-$arch/ + #~ mkdir -p $TFTPROOT/debian-gtk-$dist/$arch + #~ cp $TMPDIR/netboot-debian-gtk-$dist-$arch/debian-installer/$arch/initrd.gz $TFTPROOT/debian-gtk-$dist/$arch + #~ cp $TMPDIR/netboot-debian-gtk-$dist-$arch/debian-installer/$arch/linux $TFTPROOT/debian-gtk-$dist/$arch + wget -c $DEBIAN_FTP/$dist/main/installer-kfreebsd-$arch/current/images/netboot/netboot.tar.gz -O $TMPDIR/netboot-debian-kfreebsd-$dist-$arch.tar.gz + mkdir -p $TMPDIR/netboot-debian-$dist-kfreebsd-$arch/ + tar zxf $TMPDIR/netboot-debian-kfreebsd-$dist-$arch.tar.gz -C $TMPDIR/netboot-debian-$dist-kfreebsd-$arch/ + mkdir -p $TFTPROOT/debian-$dist/kfreebsd-$arch/ + cp -r $TMPDIR/netboot-debian-$dist-kfreebsd-$arch/* $TFTPROOT/debian-$dist/kfreebsd-$arch/ + done +done + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu begin debian + menu title Debian + label mainmenu + menu label ^Back.. + menu exit +EOF + +for dist in $DEBIAN_DISTS; do +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin debian-$dist + menu title Debian $dist + label mainmenu + menu label ^Back.. + menu exit +EOF +for arch in $DEBIAN_ARCHS; do +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin debian-$dist-$arch + menu title Debian $dist $arch + label mainmenu + menu label ^Back.. + menu exit + DEFAULT install + LABEL install + kernel debian-$dist/$arch/linux + append vga=normal initrd=debian-$dist/$arch/initrd.gz -- + LABEL expert + kernel debian-$dist/$arch/linux + append priority=low vga=normal initrd=debian-$dist/$arch/initrd.gz -- + LABEL rescue + kernel debian-$dist/$arch/linux + append vga=normal initrd=debian-$dist/$arch/initrd.gz rescue/enable=true -- + LABEL auto + kernel debian-$dist/$arch/linux + append auto=true priority=critical vga=normal initrd=debian-$dist/$arch/initrd.gz -- + menu end +EOF +done +for arch in $DEBIAN_ARCHS; do +cat >> $TFTPROOT/boot-screens/menu.cfg <> $TFTPROOT/boot-screens/menu.cfg << EOF + menu end + +EOF +#~ cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + #~ menu begin debian-gtk-$dist + #~ menu title Debian GTK $dist + #~ label mainmenu + #~ menu label ^Back.. + #~ menu exit +#~ EOF +#~ for arch in $DEBIAN_ARCHS; do +#~ cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + #~ menu begin debian-gtk-$dist-$arch + #~ menu title Debian GTK $dist $arch + #~ label mainmenu + #~ menu label ^Back.. + #~ menu exit + #~ DEFAULT install + #~ LABEL install + #~ kernel debian-gtk-$dist/$arch/linux + #~ append vga=normal initrd=debian-gtk-$dist/$arch/initrd.gz -- + #~ LABEL expert + #~ kernel debian-gtk-$dist/$arch/linux + #~ append priority=low vga=normal initrd=debian-gtk-$dist/$arch/initrd.gz -- + #~ LABEL rescue + #~ kernel debian-gtk-$dist/$arch/linux + #~ append vga=normal initrd=debian-gtk-$dist/$arch/initrd.gz rescue/enable=true -- + #~ LABEL auto + #~ kernel debian-gtk-$dist/$arch/linux + #~ append auto=true priority=critical vga=normal initrd=debian-gtk-$dist/$arch/initrd.gz -- + #~ menu end +#~ EOF +#~ done +#~ cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + #~ menu end + +#~ EOF +done + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu end +EOF +########################### +# fin DEBIAN # +########################### + + +########################### +# DEBIAN BACKPORT # +########################### + +#rm -r $TMPDIR/netboot-debian-backport-* || true; +for dist in $DEBIAN_BACKPORT_DISTS; do + for arch in $DEBIAN_BACKPORT_ARCHS; do + url=`wget $DEBIAN_BACKPORT_FTP/$dist/ -O- | grep netboot | grep $arch | sort | tail -n 1 | sed 's/">/ /g;s/href="//;s@@@' | awk '{print $6}'` + wget -c $url -O $TMPDIR/netboot-debian-backport-$dist-$arch.tar.gz + mkdir -p $TMPDIR/netboot-debian-backport-$dist-$arch/ + tar zxf $TMPDIR/netboot-debian-backport-$dist-$arch.tar.gz -C $TMPDIR/netboot-debian-backport-$dist-$arch/ + mkdir -p $TFTPROOT/debian-backport-$dist/$arch + cp $TMPDIR/netboot-debian-backport-$dist-$arch/debian-installer/$arch/initrd.gz $TFTPROOT/debian-backport-$dist/$arch + cp $TMPDIR/netboot-debian-backport-$dist-$arch/debian-installer/$arch/linux $TFTPROOT/debian-backport-$dist/$arch + done +done + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu begin debian-backport + menu title Debian Backport + label mainmenu + menu label ^Back.. + menu exit +EOF + +for dist in $DEBIAN_BACKPORT_DISTS; do +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin debian-backport-$dist + menu title Debian Backport $dist + label mainmenu + menu label ^Back.. + menu exit +EOF +for arch in $DEBIAN_BACKPORT_ARCHS; do +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin debian-backport-$dist-$arch + menu $arch + label mainmenu + menu label ^Back.. + menu exit + DEFAULT install + LABEL install + kernel debian-backport-$dist/$arch/linux + append vga=normal initrd=debian-backport-$dist/$arch/initrd.gz -- + LABEL expert + kernel debian-backport-$dist/$arch/linux + append priority=low vga=normal initrd=debian-backport-$dist/$arch/initrd.gz -- + LABEL rescue + kernel debian-backport-$dist/$arch/linux + append vga=normal initrd=debian-backport-$dist/$arch/initrd.gz rescue/enable=true -- + LABEL auto + kernel debian-backport-$dist/$arch/linux + append auto=true priority=critical vga=normal initrd=debian-backport-$dist/$arch/initrd.gz -- + menu end +EOF +done +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu end + +EOF + +done + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu end +EOF +########################### +# fin DEBIAN BACKPORT # +########################### + +########################### +# UBUNTU # +########################### + +for dist in $UBUNTU_DISTS; do + for arch in $UBUNTU_ARCHS; do + wget -c $UBUNTU_FTP/$dist/main/installer-$arch/current/images/netboot/netboot.tar.gz -O $TMPDIR/netboot-ubuntu-$dist-$arch.tar.gz + mkdir -p $TMPDIR/netboot-ubuntu-$dist-$arch/ + tar zxf $TMPDIR/netboot-ubuntu-$dist-$arch.tar.gz -C $TMPDIR/netboot-ubuntu-$dist-$arch/ + mkdir -p $TFTPROOT/ubuntu-$dist/$arch + cp $TMPDIR/netboot-ubuntu-$dist-$arch/ubuntu-installer/$arch/initrd.gz $TFTPROOT/ubuntu-$dist/$arch + cp $TMPDIR/netboot-ubuntu-$dist-$arch/ubuntu-installer/$arch/linux $TFTPROOT/ubuntu-$dist/$arch + done +done + +for type in $UBUNTU_LIVE_TYPE; do + for dist in $UBUNTU_LIVE; do + for arch in $UBUNTU_LIVE_ARCHS; do + if test -e $ISODIR/ubuntu/$type-$dist-desktop-$arch.iso; then + mkdir -p $TFTPROOT/livecd/ubuntu/$type-$dist-$arch + mount -o loop $ISODIR/ubuntu/$type-$dist-desktop-$arch.iso $TFTPROOT/livecd/ubuntu/$type-$dist-$arch + fi + done + done +done +/etc/init.d/nfs-kernel-server start + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu begin ubuntu-livecd + menu title Ubuntu LiveCd + label mainmenu + menu label ^Back.. + menu exit +EOF +for type in $UBUNTU_LIVE_TYPE; do +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin ubuntu-livecd-$type + menu title $type + label mainmenu + menu label ^Back.. + menu exit +EOF +for dist in $UBUNTU_LIVE; do +for arch in $UBUNTU_LIVE_ARCHS; do +if test -e $ISODIR/ubuntu/$type-$dist-desktop-$arch.iso; then +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + LABEL $type Livecd $dist $arch + KERNEL /livecd/ubuntu/$type-$dist-$arch/casper/vmlinuz + APPEND root=/dev/nfs boot=casper netboot=nfs nfsroot=$OWN_IP:$TFTPROOT/livecd/ubuntu/$type-$dist-$arch initrd=livecd/ubuntu/$type-$dist-$arch/casper/initrd.lz -- + +EOF +fi +done +done +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu end +EOF +done + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu end +EOF + + + + + + + + + + + + + + + + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu begin ubuntu + menu title Ubuntu + label mainmenu + menu label ^Back.. + menu exit +EOF + +for dist in $UBUNTU_DISTS; do +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin ubuntu-$dist + menu title Ubuntu $dist + label mainmenu + menu label ^Back.. + menu exit +EOF +for arch in $UBUNTU_ARCHS; do +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin ubuntu-$dist-$arch + menu title Ubuntu $dist $arch + label mainmenu + menu label ^Back.. + menu exit + DEFAULT install + LABEL install + kernel ubuntu-$dist/$arch/linux + append vga=normal initrd=ubuntu-$dist/$arch/initrd.gz -- + LABEL expert + kernel ubuntu-$dist/$arch/linux + append priority=low vga=normal initrd=ubuntu-$dist/$arch/initrd.gz -- + LABEL rescue + kernel ubuntu-$dist/$arch/linux + append vga=normal initrd=ubuntu-$dist/$arch/initrd.gz rescue/enable=true -- + LABEL auto + kernel ubuntu-$dist/$arch/linux + append auto=true priority=critical vga=normal initrd=ubuntu-$dist/$arch/initrd.gz -- + menu end +EOF +done +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu end + +EOF +done + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu end +EOF +########################### +# fin UBUNTU # +########################### + +########################### +# Mandriva # +########################### + +if [[ $MANDRIVA_DISTS != "" ]]; then +for dist in $MANDRIVA_DISTS; do + for arch in $MANDRIVA_ARCHS; do + mkdir -p $TFTPROOT/mandriva-$dist/$arch/ + wget -c $MANDRIVA_FTP/$dist/$arch/isolinux/alt0/all.rdz -O $TFTPROOT/mandriva-$dist/$arch/initrd.img + wget -c $MANDRIVA_FTP/$dist/$arch/isolinux/alt0/vmlinuz -O $TFTPROOT/mandriva-$dist/$arch/vmlinuz + done +done + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu begin mandriva + menu title Mandriva + label mainmenu + menu label ^Back.. + menu exit +EOF + +for dist in $MANDRIVA_DISTS; do + cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin mandriva-$dist + menu title Mandriva $dist + label mainmenu + menu label ^Back.. + menu exit + +EOF + + for arch in $MANDRIVA_ARCHS; do + cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin mandriva-$dist-$arch + menu title Mandriva $dist $arch + label mainmenu + menu label ^Back.. + menu exit + label install + menu label ^Install + kernel mandriva-$dist/$arch/vmlinuz + append initrd=mandriva-$dist/$arch/initrd.img ks=http://$OWN_IP/pxe/ks.mandriva-$dist-$arch.cfg ramdisk_size=8192 + menu end +EOF + cat > $KSROOT/ks.mandriva-$dist-$arch.cfg << EOF +install +url --url $MANDRIVA_FTP/$dist/$arch/ +keyboard fr-latin1 +EOF + done + + cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu end +EOF +done + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu end +EOF + +fi +########################### +# fin Mandriva # +########################### + +########################### +# CentOS # +########################### + +for dist in $CENTOS_DISTS; do + for arch in $CENTOS_ARCHS; do + mkdir -p $TMPDIR/centos-$dist/$arch/ + wget -c $CENTOS_FTP/$dist/os/$arch/images/pxeboot/initrd.img -O $TMPDIR/centos-$dist/$arch/initrd.img + wget -c $CENTOS_FTP/$dist/os/$arch/images/pxeboot/vmlinuz -O $TMPDIR/centos-$dist/$arch/vmlinuz + done +done +cp -r $TMPDIR/centos-* $TFTPROOT/ + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu begin centos + menu title CentOS + label mainmenu + menu label ^Back.. + menu exit +EOF + +for dist in $CENTOS_DISTS; do + cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin centos-$dist + menu title CentOS $dist + label mainmenu + menu label ^Back.. + menu exit + +EOF + + for arch in $CENTOS_ARCHS; do + cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin centos-$dist-$arch + menu title CentOS $dist $arch + label mainmenu + menu label ^Back.. + menu exit + label install + menu label ^Install + kernel centos-$dist/$arch/vmlinuz + append ksdevice=eth0 console=tty0 initrd=centos-$dist/$arch/initrd.img ks=http://$OWN_IP/pxe/ks.centos-$dist-$arch.cfg ramdisk_size=8192 + menu end +EOF + cat > $KSROOT/ks.centos-$dist-$arch.cfg << EOF +install +url --url $CENTOS_FTP/$dist/os/$arch/ +lang en_US.UTF-8 +langsupport --default en_US.UTF-8 en_US.UTF-8 fr_FR.UTF-8 +keyboard fr-latin1 +EOF + done + + cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu end +EOF +done + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu end +EOF +########################### +# fin CentOS # +########################### + +########################### +# Fedora # +########################### + +for dist in $FEDORA_DISTS; do + for arch in $FEDORA_ARCHS; do + mkdir -p $TMPDIR/fedora-$dist/$arch/ + wget -c $FEDORA_FTP/releases/$dist/Fedora/$arch/os/images/pxeboot/initrd.img -O $TMPDIR/fedora-$dist/$arch/initrd.img ||\ + wget -c $FEDORA_FTP/development/$dist/$arch/os/images/pxeboot/initrd.img -O $TMPDIR/fedora-$dist/$arch/initrd.img + wget -c $FEDORA_FTP/releases/$dist/Fedora/$arch/os/images/pxeboot/vmlinuz -O $TMPDIR/fedora-$dist/$arch/vmlinuz ||\ + wget -c $FEDORA_FTP/development/$dist/$arch/os/images/pxeboot/vmlinuz -O $TMPDIR/fedora-$dist/$arch/vmlinuz + done +done +cp -r $TMPDIR/fedora-* $TFTPROOT/ + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu begin fedora + menu title Fedora + label mainmenu + menu label ^Back.. + menu exit +EOF + +for dist in $FEDORA_DISTS; do + cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin fedora-$dist + menu title Fedora $dist + label mainmenu + menu label ^Back.. + menu exit + +EOF + + for arch in $FEDORA_ARCHS; do + cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin fedora-$dist-$arch + menu title Fedora $dist $arch + label mainmenu + menu label ^Back.. + menu exit + label install + menu label ^Install + kernel fedora-$dist/$arch/vmlinuz + append initrd=fedora-$dist/$arch/initrd.img repo=$FEDORA_FTP/releases/$dist/Fedora/$arch/os/ + menu end +EOF + #~ cat > $KSROOT/ks.fedora-$dist-$arch.cfg << EOF +#~ install +#~ url --url $FEDORA_FTP/releases/$dist/Fedora/$arch/os/ +#~ EOF + done + + cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu end +EOF +done + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu end +EOF +########################### +# Fin Fedora # +########################### + +########################### +# openSUSE # +########################### +for dist in $OPENSUSE_DISTS; do + mkdir -p $TMPDIR/opensuse-$dist/$arch/ + wget $OPENSUSE_FTP/$dist/repo/oss/boot/$arch/loader/linux -O $TMPDIR/opensuse-$dist/$arch/linux + wget $OPENSUSE_FTP/$dist/repo/oss/boot/$arch/loader/initrd -O $TMPDIR/opensuse-$dist/$arch/initrd +done +cp -r $TMPDIR/opensuse-* $TFTPROOT/ + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu begin opensuse + menu title Opensuse + label mainmenu + menu label ^Back.. + menu exit +EOF + +for dist in $OPENSUSE_DISTS; do +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin opensuse-$dist + menu title openSUSE $dist + label mainmenu + menu label ^Back.. + menu exit +EOF + for arch in $OPENSUSE_ARCHS; do +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin opensuse-$dist-$arch + menu title Opensuse $dist $arch + label mainmenu + menu label ^Back.. + menu exit + label install + menu label ^Install + kernel opensuse-$dist/$arch/linux + append initrd=opensuse-$dist/$arch/initrd splash=silent vga=0x314 showopts install=http://download.opensuse.org/factory/repo/oss/ -- + menu end +EOF + done + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu end +EOF +done + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu end + +EOF + +########################### +# Fin openSUSE # +########################### + +########################### +# FreeBSD # +########################### +if [[ $FREEBSD_DISTS != "" ]]; then +for dist in $FREEBSD_DISTS; do + for arch in $FREEBSD_ARCHS; do + mkdir -p $TMPDIR/freebsd-$dist/$arch/ + wget -c $FREEBSD_FTP/releases/$arch/ISO-IMAGES/$dist/FreeBSD-$dist-RELEASE-$arch-bootonly.iso -O $TMPDIR/freebsd-$dist/$arch/bootonly.iso + done +done +cp -r $TMPDIR/freebsd-* $TFTPROOT/ + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu begin freebsd + menu title FreeBSD + label mainmenu + menu label ^Back.. + menu exit +EOF + +for dist in $FREEBSD_DISTS; do + cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin freebsd-$dist + menu title FreeBSD $dist + label mainmenu + menu label ^Back.. + menu exit + +EOF + + for arch in $FREEBSD_ARCHS; do + cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu begin freebsd-$dist-$arch + menu title FreeBSD $dist $arch + label mainmenu + menu label ^Back.. + menu exit + label install + menu label ^Install + linux memdisk + initrd freebsd-$dist/$arch/bootonly.iso + append iso + menu end +EOF + done + + cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + menu end +EOF +done + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu end +EOF +fi +########################### +# Fin FreeBSD # +########################### + +########################### +# NetBSD # +########################### +# Le fichier de boot est le même pour les deux architectures +# On prend toujours le plus récent +#~ mkdir -p $TFTPROOT/netbsd/ +#~ dist=4.0.1 +#~ wget -c $NETBSD_FTP/NetBSD-$dist/amd64/installation/misc/pxeboot_ia32.bin -O $TFTPROOT/netbsd/pxeboot_ia32.bin + +# Hack moche : la version 5.0.1 ne supporte pas le netboot (le kernel freeze) +#for dist in $NETBSD_DISTS; do + #~ for arch in $NETBSD_ARCHS; do + #~ wget -c $NETBSD_FTP/NetBSD-$dist/$arch/binary/kernel/netbsd-INSTALL.gz -O $TFTPROOT/netbsd/netbsd-$dist-$arch.gz + #~ done +#done + +#~ cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +#~ label NetBSD + #~ kernel netbsd/pxeboot_ia32.bin + +#~ EOF +########################### +# Fin NetBSD # +########################### + +########################### +# OpenBSD # +########################### +if [[ $OPENBSD_DIST != "" ]]; then +mkdir -p $TMPDIR/openbsd +for dist in $OPENBSD_DIST; do + for arch in $OPENBSD_ARCHS; do + # On ne garde que le dernier fichier de boot + wget -c $OPENBSD_FTP/$dist/$arch/pxeboot -O $TMPDIR/openbsd/openbsd.$arch.0 + wget -c $OPENBSD_FTP/$dist/$arch/bsd.rd -O $TMPDIR/openbsd/bsd.rd-$dist.$arch + done +done +cp -r $TMPDIR/openbsd/ $TFTPROOT/ + +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu begin openbsd + menu title OpenBSD + label mainmenu + menu label ^Back.. + menu exit +EOF +for arch in $OPENBSD_ARCHS; do +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF + label OpenBSD $arch + kernel openbsd/pxeboot.$arch.0 +EOF +cat >> $TFTPROOT/boot-screens/menu.cfg << EOF +menu end +EOF +done +fi +########################### +# Fin OpenBSD # +########################### + + + +echo "Fini"