12 |
# debian mirror to use |
# debian mirror to use |
13 |
my $debian_mirror_uri = 'http://debian.carnet.hr/debian'; |
my $debian_mirror_uri = 'http://debian.carnet.hr/debian'; |
14 |
# split physicial machine in how meny virtual ones? |
# split physicial machine in how meny virtual ones? |
15 |
my $ve_total = 2; |
my $ve_total = 4; |
16 |
# swap size (Mb) |
# swap size (Mb) |
17 |
my $swap_size = 512; |
my $swap_size = 512; |
18 |
|
# diskspace |
19 |
|
my $diskspace = '2G:4G'; |
20 |
|
|
21 |
print "Creating new OpenVZ instance...\n"; |
print "Creating new OpenVZ instance...\n"; |
22 |
|
|
23 |
my $arg = shift @ARGV; |
my $arg = shift @ARGV || ''; |
24 |
|
|
25 |
my ($hostname, $ip); |
my ($hostname, $ip) = ('localhost',''); |
26 |
|
|
27 |
if ($arg =~ m/$RE{net}{IPv4}/) { |
if ($arg =~ m/$RE{net}{IPv4}/) { |
28 |
$ip = $arg; |
$ip = $arg; |
29 |
chomp($hostname); |
chomp($hostname); |
30 |
$hostname = host($arg); |
$hostname = host($arg); |
31 |
$hostname =~ s/^.*\s(\S+)$/$1/; |
$hostname =~ s/^.*\s(\S+)$/$1/; |
32 |
} else { |
} elsif ($arg) { |
33 |
$hostname = $arg; |
$hostname = $arg; |
34 |
$ip = host($arg); |
$ip = host($arg); |
35 |
chomp($ip); |
chomp($ip); |
86 |
print $tmp "OSTEMPLATE=debian-3.1\n"; |
print $tmp "OSTEMPLATE=debian-3.1\n"; |
87 |
close($tmp); |
close($tmp); |
88 |
|
|
89 |
vzctl('set', $ve_id, '--applyconfig', 'vps.basic', '--save'); |
# vzctl('set', $ve_id, '--applyconfig', 'vps.basic', '--save'); |
90 |
vzctl('set', $ve_id, '--ipadd', $ip, '--save'); |
vzctl('set', $ve_id, '--ipadd', $ip, '--save'); |
91 |
vzctl('set', $ve_id, '--hostname', $hostname, '--save'); |
vzctl('set', $ve_id, '--hostname', $hostname, '--save'); |
92 |
|
vzctl('set', $ve_id, '--diskspace', $diskspace, '--save'); |
93 |
} |
} |
94 |
|
|
95 |
sub create_file { |
sub create_file { |
107 |
"deb $debian_mirror_uri $dist main contrib non-free\n" |
"deb $debian_mirror_uri $dist main contrib non-free\n" |
108 |
); |
); |
109 |
|
|
110 |
vzctl('start', $ve_id, '--wait'); |
vzctl('start', $ve_id); |
111 |
|
|
112 |
my $customize_sh = <<'__END_OF_SH__'; |
my $customize_sh = <<'__END_OF_SH__'; |
113 |
|
|
115 |
pwconv |
pwconv |
116 |
|
|
117 |
# upgrade to lastest version |
# upgrade to lastest version |
118 |
apt-get update |
apt-get -y update |
119 |
apt-get upgrade |
apt-get -y upgrade |
120 |
|
|
121 |
# install additional packages |
# install additional packages |
122 |
apt-get -y install vim less ssh sudo |
apt-get -y install vim less ssh sudo screen telnet finger |
123 |
|
|
124 |
# remove unwanted packages |
# remove unwanted packages |
125 |
apt-get -y remove nano |
apt-get -y remove nano |
126 |
|
|
127 |
|
# apt-iselect helper |
128 |
|
wget -O /usr/local/bin/apt-iselect http://www.rot13.org/~dpavlin/projects/scripts/apt-iselect |
129 |
|
chmod 755 /usr/local/bin/apt-iselect |
130 |
|
|
131 |
# lock root user |
# lock root user |
132 |
usermod -L root |
usermod -L root |
133 |
|
|
170 |
|
|
171 |
#vzctl('stop', $ve_id); |
#vzctl('stop', $ve_id); |
172 |
|
|
173 |
|
my $passwd = prompt('root passwd: ', -echo=>'*'); |
174 |
|
vzctl('set', $ve_id, '--userpasswd', 'root:' . $passwd ) if ($passwd); |
175 |
|
|
176 |
|
my $login = prompt('create login: '); |
177 |
|
if ($login) { |
178 |
|
$passwd = prompt("$login passwd: ", -echo=>'*'); |
179 |
|
vzctl('exec', $ve_id, "useradd --create-home $login"); |
180 |
|
vzctl('set', $ve_id, '--userpasswd', "$login:$passwd" ); |
181 |
|
} |