--- lib/PXElator/config.pm 2009/08/02 02:04:00 110 +++ lib/PXElator/config.pm 2009/08/05 19:48:58 151 @@ -2,26 +2,91 @@ use warnings; use strict; +use autodie; use server; +use pxelinux; use File::Slurp; -sub shared { - my ($name, $value) = @_; +sub debian_live { + $dhcpd::file = "pxelinux.0"; + $pxelinux::path_prefix = 'live-helper/tftpboot/'; + $pxelinux::config_file = 'pxelinux.cfg/default'; +} + +use upstream; + +=head1 webconverger + +Webconverger - the opensource Web Kiosk + +L + +=cut + +sub webconverger { + my ($ip,$append) = @_; + + upstream::iso( 'http://download.webconverger.com/webc-5.2.iso' ); + + $append ||= 'homepage=http://' . $server::ip . ':7777'; + + pxelinux::config_for_ip( $ip, qq{ + +default webconverger +label webconverger + kernel iso/live/vmlinuz-2.6.30-backports.1-486 + append initrd=iso/live/initrd.img-2.6.30-backports.1-486 fetch=http://172.16.10.1:7777/webconverger/iso/live/filesystem.squashfs boot=live quiet nosudo splash video=vesa:ywrap,mtrr vga=788 nopersistent username=webc hostname=webconverger union=aufs $append + + }); - my $path ="$server::base_dir/conf/$server::ip/$name"; - if ( defined $value ) { - write_file $path, $value; - } else { - $value = read_file $path if -e $path; - } - return $value; +} + +=head1 debirf + +debirf is a system that will create diskless, all-in-ram images (kernel and initramfs) that boot entirely into ram and leave the user in a fully functional Debian system. + +L + +=cut + +sub debirf { + my $ip = shift; + + upstream::iso( 'http://cmrg.mayfirst.org/debirf/debirf-rescue_lenny_2.6.26-1-686.iso' ); + + pxelinux::config_for_ip( $ip, qq{ + +default linux +label linux + kernel iso/vmlinuz-2.6.26-1-686 + append initrd=iso//debirf-rescue_lenny_2.6.26-1-686.cgz + + }); +} + +sub tinycore { + my $ip = shift; + upstream::iso( 'http://distro.ibiblio.org/pub/linux/distributions/tinycorelinux/2.x/release/tinycore_2.2.iso' ); + pxelinux::config_for_ip( $ip, qq{ + +default linux +label linux + kernel iso/boot/bzImage + append initrd=iso/boot/tinycore.gz + + }); } sub for_ip { my $ip = shift; - $tftp::dir = "$server::base_dir/tftp/live-helper/tftpboot"; - $dhcpd::file = "pxelinux.0"; +# debian_live($ip); + webconverger($ip); +# debirf($ip); +# tinycore($ip); +# $tftp::dir = "$server::base_dir/tftp/$pxelinux::path_prefix"; } +warn 'loaded'; + 1;