2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-06-13 09:50:19 +00:00

enhancements for sle15 diskful CN deployment (#5605)

* add sle dir for copycds

* remove HPC packages from sle15 template

* copycds support ppc64le sle15

* support packages products for sle15

* create repos  for all products in sle15 Package ISO

* fix deployment status postbooting in sle15

* support sle15

* add copycds example for sle15

* generate add_on product

* polished

* adjust product_dir
This commit is contained in:
Yuan Bai
2018-09-18 18:03:32 +08:00
committed by yangsong
parent 83b1749f88
commit 95ca105635
7 changed files with 65 additions and 13 deletions

View File

@ -8,6 +8,10 @@ XCAT use 'copycds' command to create an image which will be available to install
If using an ISO, copy it to (or NFS mount it on) the management node, and then run: ::
copycds <path>/<specific-distro>.iso
**Note**: while sle15 contains installer medium and packages medium, need ``copycds`` copy all contents of DVD1 of the installer medium and DVD1 of the packages medium, for example: ::
copycds SLE-15-Installer-DVD-ppc64le-GM-DVD1.iso SLE-15-Packages-ppc64le-GM-DVD1.iso
If using a DVD, put it in the DVD drive of the management node and run: ::

View File

@ -324,10 +324,28 @@ sub subvars {
<name>SuSE-Linux-pkg$c</name> <!-- available since openSUSE 11.1/SLES11 (bnc#433981) -->
</listentry>";
$source_in_pre .= "<listentry><media_url>http://'\$nextserver'$pkgdir</media_url><product>SuSE-Linux-pkg$c</product><product_dir>/</product_dir><ask_on_error config:type=\"boolean\">false</ask_on_error><name>SuSE-Linux-pkg$c</name></listentry>";
} elsif ($platform =~ /^sle15*/) {
if ( -d "$pkgdir") {
opendir(DIR,$pkgdir);
my @subpkgdir=grep(!/\.\.?$|^media.1$/, readdir DIR);
foreach my $subdir (@subpkgdir){
my $product_name;
my $product_dir;
$product_dir=$subdir;
if($subdir =~ /^Module-/){
$product_name="sle-".lc($subdir);
}elsif($subdir =~ /^Product-/){
$subdir=~s/Product-//;
$product_name=$subdir;
}
if (defined($product_name) && defined($product_dir)){
$source .="<listentry><media_url>http://XCATNEXTSERVERHOOK$pkgdir</media_url><product>$product_name</product><product_dir>/$product_dir</product_dir></listentry>";
}
}
}
}
$c++;
}
$inc =~ s/#INSTALL_SOURCES#/$source/g;
$inc =~ s/#INSTALL_SOURCES_IN_PRE#/$source_in_pre/g;
if (("ubuntu" eq $platform) || ("debian" eq $platform)) {

View File

@ -937,7 +937,11 @@ sub mkinstall
# trim the "/" in /install/sles11.3/x86_64/
$pkgdir =~ s/\/$//;
if ($pkgdir =~ /^($installroot\/$os\/$arch)$/) {
$srcdirs[0] = "$pkgdir/1";
if ( -d "$pkgdir/2") {
$srcdirs[0] = "$pkgdir/1,$pkgdir/2";
}else{
$srcdirs[0] = "$pkgdir/1";
}
$tmppkgdir = join(",", @srcdirs);
}
@ -1744,7 +1748,9 @@ sub copycd
open($dinfo, $mntpath . "/media.1/media");
my $dsc = <$dinfo>;
if ($dsc =~ /x86_64/) {
$darch = "x86_64";
$darch = "x86_64";
} elsif ($dsc =~ /ppc64le/) {
$darch = "ppc64le" ;
}
if ($dsc =~ /Installer/ and $dsc =~ /SLE-15/) {
$discnumber = 1;

View File

@ -1,2 +1,4 @@
iputils
vim
openssl
rsync

View File

@ -45,16 +45,12 @@
</partitioning>
<add-on>
<add_on_products config:type="list">
<listentry><media_url>http://XCATNEXTSERVERHOOK/install/sles15/x86_64/2</media_url><product>sle-module-basesystem</product><product_dir>/Module-Basesystem</product_dir></listentry>
<listentry><media_url>http://XCATNEXTSERVERHOOK/install/sles15/x86_64/2</media_url><product>sle-module-hpc</product><product_dir>/Module-HPC</product_dir></listentry>
<listentry><media_url>http://XCATNEXTSERVERHOOK/install/sles15/x86_64/2</media_url><product>sle-module-server-applications</product><product_dir>/Module-Server-Applications</product_dir></listentry>
<listentry><media_url>http://XCATNEXTSERVERHOOK/install/sles15/x86_64/2</media_url><product>sle-module-server-applications</product><product_dir>/Module-Server-Applications</product_dir></listentry>
<listentry><media_url>http://XCATNEXTSERVERHOOK/install/sles15/x86_64/2</media_url><product>SLE_HPC</product><product_dir>/Product-HPC</product_dir></listentry>
#INSTALL_SOURCES#
</add_on_products>
</add-on>
<software>
<products config:type="list">
<product>SLE_HPC</product>
<product>SLES</product>
</products>
<patterns config:type="list">
#INCLUDE_DEFAULT_PTRNLIST_S#

View File

@ -441,7 +441,8 @@ fi
%post
%ifos linux
ln -sf $RPM_INSTALL_PREFIX0/sbin/xcatd /usr/sbin/xcatd
ln -sf $RPM_INSTALL_PREFIX0/share/xcat/install/sles $RPM_INSTALL_PREFIX0/share/xcat/install/sle
ln -sf $RPM_INSTALL_PREFIX0/share/xcat/netboot/sles $RPM_INSTALL_PREFIX0/share/xcat/netboot/sle
if [ "$1" = "1" ]; then #Only if installing for the first time..
if [ -x /usr/lib/systemd/systemd ]; then
/usr/bin/systemctl daemon-reload

View File

@ -256,7 +256,7 @@ do
# (4) for other os, we just keep it here.
# For other pkg paths, we just keep it here.
if [ $dir == $default_pkgdir ] || [ $dir == "$default_pkgdir/" ]; then
if ( pmatch "$OSVER" "sles*" ); then
if ( pmatch "$OSVER" "sle*" ); then
OSPKGDIR="$OSPKGDIR/1"
ospkgdir="$ospkgdir/1"
elif ( pmatch "$OSVER" "SL5*" ); then
@ -265,7 +265,32 @@ do
fi
fi
array_set_element os_path $index $ospkgdir
if [ $dir == $default_pkgdir ] || [ $dir == "$default_pkgdir/" ]; then
ospkgdir=$(echo $ospkgdir|sed 's/\/1$/\/2/')
if ( pmatch "$OSVER" "sle15*" ); then
if [ $ARCH == "x86_64" ]; then
for arg in "Product-SLES" "Module-Desktop-Applications" "Module-Live-Patching" \
"Module-Web-Scripting" "Module-Basesystem" "Module-Development-Tools" "Module-Public-Cloud" \
"Product-HA" "Product-SLES_SAP" "Module-CAP-Tools" "Module-HPC" "Module-SAP-Applications" \
"Product-HPC" "Product-WE" "Module-Containers" "Module-Legacy" "Module-Server-Applications" "Product-SLED"
do
ospkgdir_ok="$ospkgdir/$arg"
index=$(expr $index + 1)
array_set_element os_path $index $ospkgdir_ok
done
elif [ $ARCH == "ppc64le" ]; then
for arg in "Product-SLES" "Module-Desktop-Applications" "Module-Live-Patching" \
"Module-Web-Scripting" "Module-Basesystem" "Module-Development-Tools" "Module-Public-Cloud" \
"Product-HA" "Product-SLES_SAP" "Module-SAP-Applications" \
"Module-Containers" "Module-Legacy" "Module-Server-Applications"
do
ospkgdir_ok="$ospkgdir/$arg"
index=$(expr $index + 1)
array_set_element os_path $index $ospkgdir_ok
done
fi
fi
fi
if ( pmatch "$OSVER" "rhel*" ); then
#default_pkgdir="$INSTALLDIR/$OSVER/$ARCH"
if [ $dir == $default_pkgdir ] || [ $dir == "$default_pkgdir/" ]; then
@ -531,7 +556,7 @@ if ( pmatch "$OSVER" "sles10*" ); then
fi
fi
fi
elif ( pmatch "$OSVER" "sles*" ); then
elif ( pmatch "$OSVER" "sle*" ); then
#check if zypper is installed
result=`rpm -q zypper`
if [ $? -ne 0 ]; then