return iso path
[pxelator] / lib / PXElator / config.pm
index 18969a5..3d656c0 100644 (file)
@@ -17,7 +17,7 @@ our $mounted;
 our $server;
 our $server_ip;
 
-sub available { qw/katalog debian_live webconverger debirf tinycore nfsroot openvz printer wrt clonezilla ubuntu freedos/ };
+sub available { qw/katalog debian_live webconverger debirf tinycore nfsroot openvz printer wrt clonezilla ubuntu memdisk vyatta/ };
 
 sub debian_live {
        my ($ip) = @_;
@@ -160,10 +160,10 @@ label linux
        });
 }
 
-sub freedos {
+sub memdisk {
        my $ip = shift;
 
-       my $dir = "$server::base_dir/tftp/freedos";
+       my $dir = "$server::base_dir/tftp/memdisk";
        mkdir $dir unless -e $dir;
 
        symlink '/usr/lib/syslinux/memdisk', "$dir/memdisk" unless -e "$dir/memdisk";
@@ -173,20 +173,44 @@ sub freedos {
        if ( ! $image ) {
                $image = 'freedos.gz';
                upstream::mirror_file 'http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/unofficial/balder/balder10.imz' => "$dir/$image";
+               warn "using $image [default FreeDOS]\n";
+               symlink "$dir/$image", client::ip_path $ip . '/memdisk.image';
        } else {
-               $image =~ s{^.+/tftp/freedos/}{} && warn "using $image\n";
+               $image =~ s{^.+/tftp/memdisk/}{} && warn "using $image\n";
+       }
+
+       if ( my $kvm = client::conf $ip => 'kvm' ) {
+               client::conf $ip => 'kvm.bin', 'qemu-system-i386'; # FIXME kvm doesn't seem to work
        }
 
        pxelinux::config_for_ip( $ip, qq{
 
-default freedos
-label freedos
+default $image
+label $image
        kernel memdisk
        append initrd=$image
 
        });
 }
 
+sub vyatta {
+       my $ip = shift;
+       upstream::iso( 'http://www.vyatta.com/downloads/vc6.1/vyatta-livecd_VC6.1-2010.08.20_i386.iso' );
+
+       my $dir = "$server::base_dir/tftp/vyatta";
+       symlink '/usr/lib/syslinux/memdisk', "$dir/memdisk" unless -e "$dir/memdisk";
+
+       pxelinux::config_for_ip( $ip, qq{
+
+default vyatta
+label vyatta
+
+       kernel iso/live/vmlinuz1
+       append initrd=iso/live/initrd1.img boot=live nopersistent noautologin nonetworking nouser hostname=vyatta fetch=http://$server_ip:7777/vyatta/iso/live/filesystem.squashfs
+
+       });
+}
+
 sub in_chroot {
        my ( $dir, $command ) = @_;
        write_file "$dir/tmp/inside.sh", $command;