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