70 |
system "brctl addif virtual $ifname" |
system "brctl addif virtual $ifname" |
71 |
unless `brctl show` =~ m{$ifname}; |
unless `brctl show` =~ m{$ifname}; |
72 |
|
|
73 |
|
my $name = client::conf( client::ip_from_mac $mac, 'hostname' ); |
74 |
|
$name ||= $nr; |
75 |
|
|
76 |
my $kvm = qq| |
my $kvm = qq| |
77 |
kvm -m $memory_size -net nic,macaddr=$mac |
kvm |
78 |
|
-name "$name" |
79 |
|
-m $memory_size -net nic,macaddr=$mac |
80 |
-net tap,ifname=$ifname,script=no |
-net tap,ifname=$ifname,script=no |
81 |
-boot n |
-boot n |
82 |
-monitor tcp:$mon,server,nowait |
-monitor tcp:$mon,server,nowait |
90 |
|
|
91 |
} |
} |
92 |
|
|
93 |
|
sub nr_from_mac { |
94 |
|
my $mac = shift; |
95 |
|
$mac =~ s{^.+:([0-9a-f]{2})$}{hex($1)}e; |
96 |
|
$mac; |
97 |
|
} |
98 |
|
|
99 |
|
sub next_nr { |
100 |
|
my @kvms = glob "$server::conf/mac/AC:DE:48:00:00:*"; |
101 |
|
my $nr = nr_from_mac( pop @kvms ); |
102 |
|
return $nr + 1; |
103 |
|
} |
104 |
|
|
105 |
warn 'loaded'; |
warn 'loaded'; |
106 |
|
|
107 |
1; |
1; |