diff --git a/xCAT-server/lib/perl/xCAT/Template.pm b/xCAT-server/lib/perl/xCAT/Template.pm
index 818cbf490..513a1a9e6 100644
--- a/xCAT-server/lib/perl/xCAT/Template.pm
+++ b/xCAT-server/lib/perl/xCAT/Template.pm
@@ -139,6 +139,13 @@ sub subvars {
}
$ENV{INSTALLDIR} = $installroot;
+ my $httpport;
+ $httpport = xCAT::TableUtils->get_site_attribute("httpport");
+ if (!defined($httpport)) {
+ $httpport = "80";
+ }
+ $ENV{HTTPPORT} = $httpport;
+
#replace the env with the right value so that correct include files can be found
$inc =~ s/#ENV:([^#]+)#/envvar($1)/eg;
@@ -282,6 +289,7 @@ sub subvars {
$inc =~ s/#INCLUDE:([^#^\n]+)#/includefile($1, 0, 0)/eg;
}
+
#support multiple paths of osimage in rh/sles diskfull installation
my @pkgdirs;
if (defined($media_dir)) {
@@ -295,11 +303,11 @@ sub subvars {
if ($c == 0) {
# After some tests, if we put the repo in pre scripts in the kickstart like for rhels6.x
# the rhels5.9 will not be installed successfully. So put in kickstart directly.
- $source_in_pre .= "echo 'url --url http://'\$nextserver'/$pkgdir' >> /tmp/repos";
- $source .= "url --url http://#TABLE:noderes:\$NODE:nfsserver#/$pkgdir\n"; #For rhels5.9
+ $source_in_pre .= "echo 'url --url http://'\$nextserver':$httpport/$pkgdir' >> /tmp/repos";
+ $source .= "url --url http://#TABLE:noderes:\$NODE:nfsserver#:#TABLE:site:key=httpport:value#/$pkgdir\n"; #For rhels5.9
} else {
- $source_in_pre .= "\necho 'repo --name=pkg$c --baseurl=http://'\$nextserver'/$pkgdir' >> /tmp/repos";
- $source .= "repo --name=pkg$c --baseurl=http://#TABLE:noderes:\$NODE:nfsserver#/$pkgdir\n"; #for rhels5.9
+ $source_in_pre .= "\necho 'repo --name=pkg$c --baseurl=http://'\$nextserver':$httpport/$pkgdir' >> /tmp/repos";
+ $source .= "repo --name=pkg$c --baseurl=http://#TABLE:noderes:\$NODE:nfsserver#:#TABLE:site:key=httpport:value#/$pkgdir\n"; #for rhels5.9
}
my $distrepofile="/install/postscripts/repos/$pkgdir/local-repository.tmpl";
if( -f "$distrepofile"){
@@ -309,13 +317,13 @@ sub subvars {
open($repofd,"<","$distrepofile");
$repo_in_post = <$repofd>;
close($repofd);
- $repo_in_post =~ s#baseurl=#baseurl=http://$master/#g;
+ $repo_in_post =~ s#baseurl=#baseurl=http://$master:$httpport/#g;
$writerepo .= "\ncat >/etc/yum.repos.d/local-repository-$c.repo << 'EOF'\n";
$writerepo .="$repo_in_post\n";
$writerepo .="EOF\n";
}
} elsif ($platform =~ /^(sles|suse)/) {
- my $http = "http://#TABLE:noderes:\$NODE:nfsserver#$pkgdir";
+ my $http = "http://#TABLE:noderes:\$NODE:nfsserver#:#TABLE:site:key=httpport:value#$pkgdir";
$source .= "
$http
SuSE-Linux-pkg$c
@@ -323,7 +331,7 @@ sub subvars {
false
SuSE-Linux-pkg$c
";
- $source_in_pre .= "http://'\$nextserver'$pkgdirSuSE-Linux-pkg$c/falseSuSE-Linux-pkg$c";
+ $source_in_pre .= "http://'\$nextserver':$httpport$pkgdirSuSE-Linux-pkg$c/falseSuSE-Linux-pkg$c";
} elsif ($platform =~ /^sle15*/) {
if ( -d "$pkgdir") {
opendir(DIR,$pkgdir);
@@ -339,7 +347,7 @@ sub subvars {
$product_name=$subdir;
}
if (defined($product_name) && defined($product_dir)){
- $source .="http://XCATNEXTSERVERHOOK$pkgdir$product_name/$product_dir";
+ $source .="http://XCATNEXTSERVERHOOK:$httpport$pkgdir$product_name/$product_dir";
}
}
}
@@ -392,7 +400,7 @@ sub subvars {
$inc =~ s/#UNCOMMENTOENABLESSH#/ /g;
}
- my $sles_sdk_media = "http://" . $tmpl_hash->{tftpserver} . $media_dir . "/sdk1";
+ my $sles_sdk_media = "http://" . $tmpl_hash->{tftpserver}.':'.$httpport . $media_dir . "/sdk1";
$inc =~ s/#SLES_SDK_MEDIA#/$sles_sdk_media/eg;
@@ -531,7 +539,7 @@ sub subvars {
}
}
elsif ("ubuntu" eq $platform) {
- my $default_script = " wget http://`cat /tmp/xcatserver`" . $ENV{INSTALLDIR} . "/autoinst/getinstdisk; chmod u+x getinstdisk; ./getinstdisk;";
+ my $default_script = " wget http://`cat /tmp/xcatserver`".':'.$ENV{HTTPPORT} . $ENV{INSTALLDIR} . "/autoinst/getinstdisk; chmod u+x getinstdisk; ./getinstdisk;";
$inc =~ s/#INCLUDE_GET_INSTALL_DISK_SCRIPT#/$default_script/;
}
else {
@@ -1117,7 +1125,7 @@ sub mirrorspec {
if (!$pkgdir) {
$pkgdir = $_;
} else {
- my $osuurl = "http://" . $masternode . $_ . " ./";
+ my $osuurl = "http://" . $masternode.':'.$ENV{httpport} . $_ . " ./";
push @mirrors, $osuurl;
}
}
diff --git a/xCAT/postscripts/ospkgs b/xCAT/postscripts/ospkgs
index f3dfea148..ea5e414e9 100755
--- a/xCAT/postscripts/ospkgs
+++ b/xCAT/postscripts/ospkgs
@@ -250,7 +250,7 @@ do
OSPKGDIR="$OSPKGDIR"
if [ $mounted -eq 0 ]; then
#OSPKGDIR="$OSPKGDIR"
- ospkgdir="$NFSSERVER$dir"
+ ospkgdir="${NFSSERVER}:${HTTPPORT}$dir"
else
ospkgdir="$dir"
fi
@@ -632,7 +632,7 @@ elif ( pmatch "$OSVER" "sle*" ); then
for sdk_src in $SDKDIR; do
bname=`basename $sdk_src`
if [ $mounted -eq 0 ]; then
- sdk_src="http://$NFSSERVER/$sdk_src"
+ sdk_src="http://$NFSSERVER:$HTTPPORT/$sdk_src"
else
sdk_src="file://$sdk_src"
fi
diff --git a/xCAT/postscripts/otherpkgs b/xCAT/postscripts/otherpkgs
index 8865990b7..abb4b3219 100755
--- a/xCAT/postscripts/otherpkgs
+++ b/xCAT/postscripts/otherpkgs
@@ -290,7 +290,7 @@ fi
#when it is not set, we need to figure it out here
if [ -z "$OTHERPKGDIR" ]; then
if [ $mounted -eq 0 ]; then
- OTHERPKGDIR="$NFSSERVER$INSTALLDIR/post/otherpkgs/$OSVER/$ARCH"
+ OTHERPKGDIR="${NFSSERVER}:${HTTPPORT}$INSTALLDIR/post/otherpkgs/$OSVER/$ARCH"
else
OTHERPKGDIR="$INSTALLDIR/post/otherpkgs/$OSVER/$ARCH"
fi
@@ -300,7 +300,7 @@ if [ -z "$OTHERPKGDIR" ]; then
fi
else
if [ $mounted -eq 0 ]; then
- OTHERPKGDIR=${NFSSERVER}${OTHERPKGDIR}
+ OTHERPKGDIR=${NFSSERVER}:${HTTPPORT}${OTHERPKGDIR}
fi
fi
@@ -331,7 +331,7 @@ fi
OSPKGDIR="$OSPKGDIR"
if [ $mounted -eq 0 ]; then
#OSPKGDIR="$OSPKGDIR"
- ospkgdir="$NFSSERVER$dir"
+ ospkgdir="${NFSSERVER}:${HTTPPORT}$dir"
else
ospkgdir="$dir"
fi
@@ -523,7 +523,7 @@ if ( ! ( pmatch "$OSVER" "sles10*" ) && [ $haszypper -eq 1 ] ); then
for sdk_src in $SDKDIR; do
bname=`basename $sdk_src`
if [ $mounted -eq 0 ]; then
- sdk_src="http://$NFSSERVER/$sdk_src"
+ sdk_src="http://${NFSSERVER}:${HTTPPORT}/$sdk_src"
else
sdk_src="file://$sdk_src"
fi