16 |
|
|
17 |
my $interfaces = read_file '/etc/network/interfaces'; |
my $interfaces = read_file '/etc/network/interfaces'; |
18 |
|
|
19 |
if ( $interfaces !~ m{tap0.*$server::ip}s ) { |
if ( $interfaces !~ m{tap0}s ) { |
20 |
|
|
21 |
system "sudo apt-get install vde2"; |
system "sudo apt-get install vde2"; |
22 |
|
|
23 |
$interfaces .= qq{ |
write_file '/tmp/interfaces', qq{ |
24 |
|
|
25 |
iface tap0 inet static |
# added by PXElator |
26 |
address $server::ip |
iface tap0 inet static |
27 |
netmask $server::netmask |
address $server::ip |
28 |
vde2-switch - |
netmask $server::netmask |
29 |
|
vde2-switch - |
30 |
|
|
31 |
}; |
}; |
32 |
|
|
33 |
write_file '/etc/network/interfaces', $interfaces; |
system q|sudo sh -c 'cat /tmp/interfaces >> /etc/network/interfaces'|; |
34 |
|
system q|sudo sh -c 'usermod -G vde2-net -a $SUDO_USER'|; |
35 |
|
|
36 |
} |
} |
37 |
|
|
38 |
ifconfig('tap0') =~ m{UP} && return 'up'; |
my $ifconfig = ifconfig('tap0'); |
39 |
system("sudo ifup tap0") == 0 && return 'started'; |
if ( $ifconfig =~ m{UP} ) { |
40 |
|
$ifconfig =~ m{$server::ip}s && return 'up'; |
41 |
|
system("sudo /sbin/ifconfig tap0 $server::ip netmask $server::netmask") == 0 && return "ip changed $server::ip"; |
42 |
|
die "can't change IP address of tap0 to $server::ip"; |
43 |
|
} else { |
44 |
|
die "bring interface up with: sudo ifup tap0\n"; |
45 |
|
} |
46 |
} |
} |
47 |
|
|
48 |
1; |
1; |