8 |
use Regexp::Common qw/net/; |
use Regexp::Common qw/net/; |
9 |
use lib 'lib'; |
use lib 'lib'; |
10 |
use VZ; |
use VZ; |
11 |
|
use Getopt::Long; |
12 |
|
|
13 |
# default debian distribution |
# default debian distribution |
14 |
my $dist = 'etch'; |
my $dist = 'etch'; |
16 |
my $debian_mirror_uri = 'http://www.debian.org/debian'; |
my $debian_mirror_uri = 'http://www.debian.org/debian'; |
17 |
my $arh = 'i386'; |
my $arh = 'i386'; |
18 |
# split physicial machine in how meny virtual ones? |
# split physicial machine in how meny virtual ones? |
19 |
my $ve_total = 4; |
my $split = 4; |
20 |
# swap size (Mb) |
# swap size (Mb) |
21 |
my $swap_size = 512; |
my $swap_size = 512; |
22 |
# diskspace |
# diskspace |
23 |
my $diskspace = '2G:4G'; |
my $diskspace = '2G:4G'; |
24 |
|
|
25 |
$dist = 'testing'; |
GetOptions( |
26 |
$arh = 'amd64'; |
'dist=s' => \$dist, |
27 |
|
'arh=s' => \$arh, |
28 |
|
'mirror=s' => \$debian_mirror_uri, |
29 |
|
'split=i' => \$split, |
30 |
|
); |
31 |
|
|
32 |
check_root; |
check_root; |
33 |
|
|
73 |
|
|
74 |
my @ip_split = split(/\./,$ip); |
my @ip_split = split(/\./,$ip); |
75 |
|
|
76 |
my $ve_id = sprintf('%d%03d', $ip_split[2], $ip_split[3]); |
# 192.168.42.1 -> 42 001 |
77 |
|
# 10.60.0.3 -> 60 003 |
78 |
|
# 10.60.1.42 -> 1 042 |
79 |
|
|
80 |
|
my $ve_id = sprintf('%d%03d', $ip_split[2] || $ip_split[1], $ip_split[3]); |
81 |
|
|
82 |
|
if ( $ve_id < 101 ) { |
83 |
|
$ve_id += 100; |
84 |
|
warn "# VEID moved to $ve_id because 0 .. 100 are reserved\n"; |
85 |
|
} |
86 |
|
|
87 |
print "VEID: $ve_id hostname: $hostname ip: $ip\n"; |
print "VEID: $ve_id hostname: $hostname ip: $ip\n"; |
88 |
|
|
108 |
if (-e $conf_path) { |
if (-e $conf_path) { |
109 |
warn "$conf_path allready exists, not touching it\n"; |
warn "$conf_path allready exists, not touching it\n"; |
110 |
} else { |
} else { |
111 |
vzsplit('-n', $ve_total, '-s', $swap_size * 1024, '>', $conf_path); |
vzsplit('-n', $split, '-s', $swap_size * 1024, '>', $conf_path); |
112 |
|
|
113 |
die "configuration file not created" unless -e $conf_path; |
die "configuration file not created" unless -e $conf_path; |
114 |
|
|
153 |
vzctl('set', $ve_id, '--userpasswd', "$login:$passwd" ); |
vzctl('set', $ve_id, '--userpasswd', "$login:$passwd" ); |
154 |
} |
} |
155 |
|
|
156 |
|
#runscript( $ve_id, 'custom/50-hypertable.sh' ); |
157 |
print "OK: $ve_id created\n"; |
print "OK: $ve_id created\n"; |