show server ip and netmask
[pxelator] / lib / PXElator / pxe.pm
1 package pxe;
2
3 use warnings;
4 use strict;
5 use autodie;
6
7 use File::Slurp;
8
9 use httpd;
10 use tftpd;
11
12 our $file = 'gpxelinux.0';
13 my $path = "$tftpd::dir/$file";
14 symlink '/usr/lib/syslinux/gpxelinux.0', $path unless -l $path;
15 warn "file $path ", -s $path;
16
17 my $url = $httpd::url;
18 #$url = "tftp://$server::ip/"; # fallback to tftp
19 #$url = "http://$server::ip/pxelator/";
20
21 my $squash = tftpd::path('debian-live/*squashfs');
22
23 sub config_for_ip {
24
25         my $ip = shift;
26         $ip = uc sprintf "%02x%02x%02x%02x", split /\./,$ip;
27
28         my $config = "$tftpd::dir/pxelinux.cfg";
29         mkdir $config unless -d $config;
30         $config .= '/' . $ip;
31
32         write_file $config, qq{
33
34         default linux
35         label linux
36                 kernel $url/debian-live/vmlinuz1
37                 append initrd=$url/debian-live/initrd1.img boot=live union=aufs noswap noprompt vga=normal fetch=$url/$squash
38
39         };
40
41         warn "config $config ", -s $config;
42
43 }
44
45 warn "loaded";
46
47 1;