--- trunk/vz-clone.pl 2007/10/16 09:35:59 33 +++ trunk/vz-clone.pl 2009/02/27 18:41:06 64 @@ -39,9 +39,9 @@ open(my $m, '-|', 'mount') || die "can't open mount: $!"; while(<$m>) { my @v = split(/\s+/,$_); - if ( $v[2] =~ m!/(private|root)/$CVEID$! && $v[5] =~ m/bind/ ) { + if ( $v[2] =~ m{/(private|root)/$CVEID$} && $v[5] =~ m/bind/ ) { umount( $v[2] ); - } elsif ( $v[2] =~ m!vz-clone-$CVEID$! ) { + } elsif ( $v[2] =~ m{vz-clone-$CVEID$} ) { $clone = $v[2]; } } @@ -90,7 +90,7 @@ if ( $vz_lv ) { - my ( $vz_lv_path, $vz_lv_name ) = ( $1, $2 ) if ( $vz_lv =~ m!^(.+)/([^/]+)$! ); + my ( $vz_lv_path, $vz_lv_name ) = ( $1, $2 ) if ( $vz_lv =~ m{^(.+)/([^/]+)$} ); my $snap = $vz_lv_name . '-snap'; my $clone = "vz-clone-$CVEID"; @@ -125,7 +125,7 @@ } - my $vg_name = $1 if ( $vz_lv_path =~ m!/([^/]+)/*$! ); + my $vg_name = $1 if ( $vz_lv_path =~ m{/([^/]+)/*$} ); if ( lvdisplay( "$vz_lv_path/$clone" ) ) { warn "using existing $vz_lv_path/$clone\n"; @@ -169,12 +169,15 @@ my $note = "# modified by $0\n"; +my $ve_clone_ip; + sub fix_ip { my $ip = shift; $ip =~ s/['"]//g; # $ip =~ s/^\d+\./10./; $ip =~ s/^\d+\.\d+\./192.168./; warn "$CVEID new IP number: $ip\n"; + $ve_clone_ip = $ip; return $note . qq{IP_ADDRESS="$ip"}; } @@ -189,10 +192,10 @@ open(my $o, '<', "$conf/$VEID.conf") || die "can't open $conf/$VEID.conf: $!"; open(my $n, '>', "$conf/$CVEID.conf") || die "can't open $conf/$CVEID.conf: $!"; while(<$o>) { - s!^HOSTNAME=(.*)$!fix_hostname($1)!ie; - s!^IP_ADDRESS=(.*)$!fix_ip($1)!ie; - s!^(ONBOOT=).*$!# modified by $0\n$1"no"!i; + s{^HOSTNAME=(.*)$}{fix_hostname($1)}ie; + s{^IP_ADDRESS=(.*)$}{fix_ip($1)}ie; + s{^(ONBOOT=).*$}{# modified by $0\n$1"no"}i; print $n $_; } -print "\nPlease review config file: $conf/$CVEID.conf\nAdd NAT for new VE with: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE\nStart clone of $VEID with: vzctl start $CVEID\n" +print "\nPlease review config file: $conf/$CVEID.conf\nAdd NAT for new VE with: iptables -t nat -A POSTROUTING -s $ve_clone_ip -o eth0 -j MASQUERADE\nStart clone of $VEID with: vzctl start $CVEID\n"