# copyright # < josx @ interorganic.com.ar > # Licence: GPL # class di_netboot_assistant { package { [ "di-netboot-assistant", "tftpd-hpa" ]: ensure => installed } # sources.list with the lastest Ubuntu releases file { "/etc/di-netboot-assistant/di-sources.list": require => Package["di-netboot-assistant"], owner => root, group => root, mode => 644, source => "puppet:///di_netboot_assistant/di-sources.list" } # some customization of the pxe menu file { "/etc/di-netboot-assistant/pxelinux.HEAD": require => Package["di-netboot-assistant"], owner => root, group => root, mode => 644, source => "puppet:///di_netboot_assistant/pxelinux.HEAD", before => Exec["updatemenu"] } exec { "updatemenu": command => "di-netboot-assistant rebuild-menu", path => "/bin:/sbin:/usr/sbin:/usr/bin", subscribe => File["/etc/di-netboot-assistant/pxelinux.HEAD"], refreshonly => true } # symbolic link to generated menu file { "/var/lib/tftpboot": ensure => directory, owner => "root", group => "root", mode => "755"; "/var/lib/tftpboot/pxelinux.cfg": ensure => directory, owner => "root", group => "root", mode => "755"; "/var/lib/tftpboot/pxelinux.0": ensure => "debian-installer/pxelinux.0"; "/var/lib/tftpboot/pxelinux.cfg/default": ensure => "../debian-installer/pxelinux.cfg/default"; } exec { "di_netboot_assistant_lenny": command => "di-netboot-assistant install lenny --arch=amd64,i386 &>/dev/null", creates => "/var/lib/tftpboot/debian-installer/lenny/i386/linux", path => "/bin:/sbin:/usr/sbin:/usr/bin", require => [Package["di-netboot-assistant"], File["/etc/di-netboot-assistant/di-sources.list"], File["/etc/di-netboot-assistant/pxelinux.HEAD"]] } exec { "di_netboot_assistant_squeeze": command => "di-netboot-assistant install squeeze --arch=amd64,i386 &>/dev/null", creates => "/var/lib/tftpboot/debian-installer/squeeze/i386/linux", path => "/bin:/sbin:/usr/sbin:/usr/bin", require => [Package["di-netboot-assistant"], File["/etc/di-netboot-assistant/di-sources.list"], File["/etc/di-netboot-assistant/pxelinux.HEAD"]] } exec { "di_netboot_assistant_sid": command => "di-netboot-assistant install sid --arch=amd64,i386 &>/dev/null", creates => "/var/lib/tftpboot/debian-installer/sid/i386/linux", path => "/bin:/sbin:/usr/sbin:/usr/bin", require => [Package["di-netboot-assistant"], File["/etc/di-netboot-assistant/di-sources.list"], File["/etc/di-netboot-assistant/pxelinux.HEAD"]] } exec { "di_netboot_assistant_hardy": command => "di-netboot-assistant install hardy --arch=amd64,i386 &>/dev/null", creates => "/var/lib/tftpboot/debian-installer/hardy/i386/linux", path => "/bin:/sbin:/usr/sbin:/usr/bin", require => [Package["di-netboot-assistant"], exec["di_netboot_assistant_lenny"]] } exec { "di_netboot_assistant_jaunty": command => "di-netboot-assistant install jaunty --arch=amd64,i386 &>/dev/null", creates => "/var/lib/tftpboot/debian-installer/jaunty/i386/linux", path => "/bin:/sbin:/usr/sbin:/usr/bin", require => [Package["di-netboot-assistant"], exec["di_netboot_assistant_lenny"]] } exec { "di_netboot_assistant_karmic": command => "di-netboot-assistant install karmic --arch=amd64,i386 &>/dev/null", creates => "/var/lib/tftpboot/debian-installer/karmic/i386/linux", path => "/bin:/sbin:/usr/sbin:/usr/bin", require => [Package["di-netboot-assistant"], exec["di_netboot_assistant_lenny"]] } exec { "di_netboot_assistant_lucid": command => "di-netboot-assistant install lucid --arch=amd64,i386 &>/dev/null", creates => "/var/lib/tftpboot/debian-installer/lucid/i386/linux", path => "/bin:/sbin:/usr/sbin:/usr/bin", require => [Package["di-netboot-assistant"], exec["di_netboot_assistant_lenny"]] } } class di_netboot_assistant::debian::powerpc::daily { package { [ "tftpd-hpa" ]: ensure => installed } file { ["/var/lib/tftpboot/debian-installer", "/var/lib/tftpboot/debian-installer/daily", "/var/lib/tftpboot/debian-installer/daily/powerpc/"]: ensure => directory, owner => root, group => root, require => Package["tftpd-hpa"]; } fetch_netboot_powerpc { [ "boot.msg", "initrd.gz", "vmlinux", "yaboot", "yaboot.conf" ]: } $mirror_daily_di = "http://d-i.debian.org/daily-images/powerpc/daily/powerpc/netboot" define fetch_netboot_powerpc($mirror = "http://d-i.debian.org/daily-images/powerpc/daily/powerpc/netboot") { # file { ["/var/lib/tftpboot/debian-installer/daily1", "/var/lib/tftpboot/debian-installer/daily1/powerpc/"]: # ensure => directory, # owner => root, # group => root, # require => [Package["tftpd-hpa"]]; # } exec { "wget -O /var/lib/tftpboot/debian-installer/daily/powerpc/$name -q $mirror1/$name": creates => "/var/lib/tftpboot/debian-installer/daily/powerpc/$name", path => "/usr/bin", require => [Package["tftpd-hpa"], File["/var/lib/tftpboot/debian-installer/daily/powerpc/"]] } } } class di_netboot_assistant::debian::powerpc::squeeze { file { ["/var/lib/tftpboot/debian-installer/squeeze", "/var/lib/tftpboot/debian-installer/squeeze/powerpc"]: ensure => directory, owner => root, group => root, require => Package["tftpd-hpa"]; } fetch_netboot_powerpc_squeeze { [ "boot.msg", "initrd.gz", "vmlinux", "yaboot", "yaboot.conf" ]: release => "squeeze"; } # $mirror1 = "http://debian.torredehanoi.org/debian/dists/squeeze/main/installer-powerpc/current/images/powerpc/netboot" define fetch_netboot_powerpc_squeeze($release,$mirror="http://debian.torredehanoi.org/debian/dists") { exec { "wget -O /var/lib/tftpboot/debian-installer/$release/powerpc/$name -q $mirror/$release/main/installer-powerpc/current/images/powerpc/netboot/$name": creates => "/var/lib/tftpboot/debian-installer/$release/powerpc/$name", path => "/usr/bin", require => [Package["tftpd-hpa"], File["/var/lib/tftpboot/debian-installer/$release/powerpc"]] } } } class di_netboot_assistant::debian::powerpc::lenny { file { ["/var/lib/tftpboot/debian-installer/lenny", "/var/lib/tftpboot/debian-installer/lenny/powerpc"]: ensure => directory, owner => root, group => root, require => Package["tftpd-hpa"]; } fetch_netboot_powerpc_lenny { [ "boot.msg", "initrd.gz", "vmlinux", "yaboot", "yaboot.conf" ]: release => "lenny"; } define fetch_netboot_powerpc_lenny($release,$mirror="http://debian.torredehanoi.org/debian/dists") { exec { "wget -O /var/lib/tftpboot/debian-installer/$release/powerpc/$name -q $mirror/$release/main/installer-powerpc/current/images/powerpc/netboot/$name": creates => "/var/lib/tftpboot/debian-installer/$release/powerpc/$name", path => "/usr/bin", require => [Package["tftpd-hpa"], File["/var/lib/tftpboot/debian-installer/lenny/powerpc"]] } } } class di_netboot_assistant::rpld { ## boot novell - netboot bios # TODO: configure /etc/default/rpld # configure /etc/rpld.conf for pxe booting # http://help.lockergnome.com/linux/Netbooting-RPL--ftopict415270.html # http://etherboot.org/wiki/rplchaining # package { [ "rpld" ]: ensure => installed } service { "rpld": enable => true, ensure => running, subscribe => [ Package["rpld"], File["/etc/rpld.conf"], File["/etc/default/rpld"] ], } # rpld.conf configuration. file { "/etc/rpld.conf": owner => root, group => root, mode => 644, source => "puppet:///di_netboot_assistant/rpld.conf" } file { "/etc/default/rpld": owner => root, group => root, mode => 644, source => "puppet:///di_netboot_assistant/rpld" } # download the http://rom-o-matic.net/gpxe/gpxe-git/gpxe.git/contrib/rom-o-matic/ # gPXE 0.9.9+ # pxe bootstraploader / all driver file { "/var/lib/tftpboot/gpxe.pxe": owner => root, group => root, mode => 644, source => "puppet:///di_netboot_assistant/gpxe.pxe" } }