add NODE=<nodename> to kcmdline
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@16428 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
parent
970aa52ab3
commit
a180201e24
@ -608,7 +608,9 @@ sub mknetboot
|
||||
);
|
||||
next;
|
||||
}
|
||||
my $kcmdline; # add two more arguments: XCAT=xcatmaster:xcatport and ifname=<eth0>:<mac address>
|
||||
my $kcmdline;
|
||||
# add more arguments: XCAT=xcatmaster:xcatport NODE=<nodename>
|
||||
#and ifname=<eth0>:<mac address>
|
||||
if($statelite){
|
||||
if ($rootfstype ne "ramdisk") {
|
||||
# get entry for nfs root if it exists:
|
||||
@ -700,6 +702,7 @@ sub mknetboot
|
||||
$kcmdline =
|
||||
"imgurl=$httpmethod://$imgsrv:$httpport/$rootimgdir/rootimg.$suffix ";
|
||||
$kcmdline .= "XCAT=$xcatmaster:$xcatdport ";
|
||||
$kcmdline .= "NODE=$node ";
|
||||
}
|
||||
|
||||
# add one parameter: ifname=<eth0>:<mac address>
|
||||
@ -1802,7 +1805,6 @@ sub mksysclone
|
||||
$kcmdline .= "n8r";
|
||||
}
|
||||
}
|
||||
|
||||
$kcmdline .= " xcatd=$xcatmaster:$xcatdport SCRIPTNAME=$imagename";
|
||||
#$kcmdline .= " noipv6";
|
||||
# add the addkcmdline attribute to the end
|
||||
|
@ -38,10 +38,10 @@ sub handled_commands
|
||||
{
|
||||
return {
|
||||
copycd => "anaconda",
|
||||
mknetboot => "nodetype:os=(ol.*)|(centos.*)|(rh.*)|(fedora.*)|(SL.*)",
|
||||
mkinstall => "nodetype:os=(esxi4.1)|(esx[34].*)|(ol.*)|(centos.*)|(rh(?!evh).*)|(fedora.*)|(SL.*)",
|
||||
mksysclone => "nodetype:os=(esxi4.1)|(esx[34].*)|(ol.*)|(centos.*)|(rh(?!evh).*)|(fedora.*)|(SL.*)",
|
||||
mkstatelite => "nodetype:os=(esx[34].*)|(ol.*)|(centos.*)|(rh.*)|(fedora.*)|(SL.*)",
|
||||
mknetboot => "nodetype:os=(^ol[0-9].*)|(centos.*)|(rh.*)|(fedora.*)|(SL.*)",
|
||||
mkinstall => "nodetype:os=(esxi4.1)|(esx[34].*)|(^ol[0-9].*)|(centos.*)|(rh(?!evh).*)|(fedora.*)|(SL.*)",
|
||||
mksysclone => "nodetype:os=(esxi4.1)|(esx[34].*)|(^ol[0-9].*)|(centos.*)|(rh(?!evh).*)|(fedora.*)|(SL.*)",
|
||||
mkstatelite => "nodetype:os=(esx[34].*)|(^ol[0-9].*)|(centos.*)|(rh.*)|(fedora.*)|(SL.*)",
|
||||
|
||||
};
|
||||
}
|
||||
@ -485,7 +485,6 @@ sub mknetboot
|
||||
|
||||
# create the node-specific post scripts
|
||||
#mkpath "/install/postscripts/";
|
||||
#xCAT::Postage->writescript($node,"/install/postscripts/".$node, "netboot", $callback);
|
||||
|
||||
# Copy the boot resource to /tftpboot and check to only copy once
|
||||
my $docopy = 0;
|
||||
@ -609,7 +608,9 @@ sub mknetboot
|
||||
);
|
||||
next;
|
||||
}
|
||||
my $kcmdline; # add two more arguments: XCAT=xcatmaster:xcatport and ifname=<eth0>:<mac address>
|
||||
my $kcmdline;
|
||||
# add more arguments: XCAT=xcatmaster:xcatport NODE=<nodename>
|
||||
#and ifname=<eth0>:<mac address>
|
||||
if($statelite){
|
||||
if ($rootfstype ne "ramdisk") {
|
||||
# get entry for nfs root if it exists:
|
||||
@ -701,6 +702,7 @@ sub mknetboot
|
||||
$kcmdline =
|
||||
"imgurl=$httpmethod://$imgsrv:$httpport/$rootimgdir/rootimg.$suffix ";
|
||||
$kcmdline .= "XCAT=$xcatmaster:$xcatdport ";
|
||||
$kcmdline .= "NODE=$node ";
|
||||
}
|
||||
|
||||
# add one parameter: ifname=<eth0>:<mac address>
|
||||
@ -842,7 +844,11 @@ sub mknetboot
|
||||
|
||||
# add the cmdline parameters for handling the local disk for stateless
|
||||
if ($cfgpart eq "yes") {
|
||||
$kcmdline .= " PARTITION";
|
||||
if ($statelite) {
|
||||
$kcmdline .= " PARTITION_RH"
|
||||
} else {
|
||||
$kcmdline .= " PARTITION_DOMOUNT_RH"
|
||||
}
|
||||
}
|
||||
|
||||
# add the addkcmdline attribute to the end
|
||||
@ -1191,8 +1197,8 @@ sub mkinstall
|
||||
"/$installroot/autoinst/" . $node,
|
||||
$node,
|
||||
$pkglistfile,
|
||||
undef,
|
||||
undef,
|
||||
$pkgdir,
|
||||
$platform,
|
||||
$partfile
|
||||
);
|
||||
}
|
||||
@ -1482,6 +1488,16 @@ sub mksysclone
|
||||
my %hents =
|
||||
%{$hmtab->getNodesAttribs(\@nodes,
|
||||
['serialport', 'serialspeed', 'serialflow'])};
|
||||
my @entries = xCAT::TableUtils->get_site_attribute("xcatdport");
|
||||
my $port_entry = $entries[0];
|
||||
my $xcatdport="3001";
|
||||
if ( defined($port_entry)) {
|
||||
$xcatdport = $port_entry;
|
||||
}
|
||||
|
||||
my @entries = xCAT::TableUtils->get_site_attribute("master");
|
||||
my $master_entry = $entries[0];
|
||||
|
||||
require xCAT::Template;
|
||||
|
||||
# Warning message for nodeset <noderange> install/netboot/statelite
|
||||
@ -1507,7 +1523,7 @@ sub mksysclone
|
||||
}
|
||||
|
||||
# copy postscripts
|
||||
my $script1 = "efibootmgr";
|
||||
my $script1 = "configefi";
|
||||
my $script2 = "updatenetwork";
|
||||
my $pspath = "$installroot/sysclone/scripts/post-install/";
|
||||
my $clusterfile = "$installroot/sysclone/scripts/cluster.txt";
|
||||
@ -1553,7 +1569,7 @@ sub mksysclone
|
||||
{
|
||||
$xcatmaster = $ient->{xcatmaster};
|
||||
} else {
|
||||
$xcatmaster = '!myipfn!';
|
||||
$xcatmaster = $master_entry;
|
||||
}
|
||||
|
||||
my $osinst;
|
||||
@ -1710,47 +1726,15 @@ sub mksysclone
|
||||
my $ramdisk_size = 200000;
|
||||
|
||||
if (
|
||||
-r "$installroot/sysclone/images/$imagename/etc/systemimager/boot/kernel"
|
||||
and $kernpath = "$installroot/sysclone/images/$imagename/etc/systemimager/boot/kernel"
|
||||
and -r "$installroot/sysclone/images/$imagename/etc/systemimager/boot/initrd.img"
|
||||
and $initrdpath = "$installroot/sysclone/images/$imagename/etc/systemimager/boot/initrd.img"
|
||||
-r "$tftpdir/xcat/genesis.kernel.$arch"
|
||||
and $kernpath = "$tftpdir/xcat/genesis.kernel.$arch"
|
||||
and -r "$tftpdir/xcat/genesis.fs.$arch.lzma"
|
||||
and $initrdpath = "$tftpdir/xcat/genesis.fs.$arch.lzma"
|
||||
)
|
||||
{
|
||||
#TODO: driver slipstream, targetted for network.
|
||||
# Copy the install resource to /tftpboot and check to only copy once
|
||||
my $docopy = 0;
|
||||
my $tftppath;
|
||||
my $rtftppath; # the relative tftp path without /tftpboot/
|
||||
if ($imagename) {
|
||||
$tftppath = "$tftpdir/xcat/osimage/$imagename";
|
||||
$rtftppath = "xcat/osimage/$imagename";
|
||||
unless ($donetftp{$imagename}) {
|
||||
$docopy = 1;
|
||||
$donetftp{$imagename} = 1;
|
||||
}
|
||||
} else {
|
||||
$tftppath = "/$tftpdir/xcat/$os/$arch/$profile";
|
||||
$rtftppath = "xcat/$os/$arch/$profile";
|
||||
unless ($donetftp{"$os|$arch|$profile|$tftpdir"}) {
|
||||
$docopy = 1;
|
||||
$donetftp{"$os|$arch|$profile|$tftpdir"} = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if ($docopy) {
|
||||
mkpath("$tftppath");
|
||||
copy($kernpath,"$tftppath/vmlinuz");
|
||||
copy($initrdpath,"$tftppath/initrd.img");
|
||||
&insert_dd($callback, $os, $arch, "$tftppath/initrd.img", $driverupdatesrc, $netdrivers);
|
||||
}
|
||||
|
||||
#We have a shot...
|
||||
my $ent = $rents{$node}->[0];
|
||||
my $sent = $hents{$node}->[0];
|
||||
$instserver = $xcatmaster;
|
||||
if ($ent and $ent->{nfsserver}) {
|
||||
$instserver=$ent->{nfsserver};
|
||||
}
|
||||
|
||||
my $kcmdline =
|
||||
"ramdisk_size=$ramdisk_size";
|
||||
@ -1821,6 +1805,7 @@ sub mksysclone
|
||||
$kcmdline .= "n8r";
|
||||
}
|
||||
}
|
||||
$kcmdline .= " xcatd=$xcatmaster:$xcatdport SCRIPTNAME=$imagename";
|
||||
#$kcmdline .= " noipv6";
|
||||
# add the addkcmdline attribute to the end
|
||||
# of the command, if it exists
|
||||
@ -1832,8 +1817,8 @@ sub mksysclone
|
||||
#}
|
||||
my $k;
|
||||
my $i;
|
||||
$k = "$rtftppath/vmlinuz";
|
||||
$i = "$rtftppath/initrd.img";
|
||||
$k = "xcat/genesis.kernel.$arch";
|
||||
$i = "xcat/genesis.fs.$arch.lzma";
|
||||
|
||||
$bptab->setNodeAttribs(
|
||||
$node,
|
||||
@ -1848,7 +1833,7 @@ sub mksysclone
|
||||
{
|
||||
$callback->(
|
||||
{
|
||||
error => ["Kernel and initrd not found in $installroot/sysclone/images/$imagename"],
|
||||
error => ["Kernel and initrd not found in $tftpdir/xcat"],
|
||||
errorcode => [1]
|
||||
}
|
||||
);
|
||||
@ -2064,12 +2049,21 @@ sub copycd
|
||||
|
||||
|
||||
%{$request} = (); #clear request we've got it.
|
||||
my $disccopiedin=0;
|
||||
my $osdistroname=$distname."-".$arch;
|
||||
|
||||
my $defaultpath="$installroot/$distname/$arch";
|
||||
unless($path)
|
||||
{
|
||||
$path=$defaultpath;
|
||||
}
|
||||
if ($::XCATSITEVALS{osimagerequired}){
|
||||
my ($nohaveimages,$errstr) = xCAT::SvrUtils->update_tables_with_templates($distname, $arch,$path,$osdistroname,checkonly=>1);
|
||||
if ($nohaveimages) {
|
||||
$callback->({error => "No Templates found to support $distname($arch)",errorcode=>2});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
#tranverse the directory structure of the os media and get the fingerprint
|
||||
my @filelist=();
|
||||
@ -2247,6 +2241,9 @@ sub copycd
|
||||
}
|
||||
|
||||
#hiding the messages about this not being found, since it may be intentional
|
||||
|
||||
my @ret=xCAT::SvrUtils->update_tables_with_mgt_image($distname, $arch, $path,$osdistroname);
|
||||
|
||||
my @ret=xCAT::SvrUtils->update_tables_with_diskless_image($distname, $arch, undef, "netboot",$path,$osdistroname);
|
||||
#if ($ret[0] != 0) {
|
||||
#$callback->({data => "Error when updating the osimage tables for stateless: " . $ret[1]});
|
||||
|
@ -1334,6 +1334,8 @@ sub mknetboot
|
||||
$kcmdline .= $statemnt ." ";
|
||||
$kcmdline .=
|
||||
"XCAT=$xcatmaster:$xcatdport ";
|
||||
$kcmdline .=
|
||||
"NODE=$node ";
|
||||
# BEGIN service node
|
||||
my $isSV = xCAT::Utils->isServiceNode();
|
||||
my $res = xCAT::Utils->runcmd("hostname", 0);
|
||||
|
@ -553,6 +553,7 @@ sub mknetboot
|
||||
"imgurl=$httpmethod://$imgsrv/$rootimgdir/rootimg.$suffix ";
|
||||
}
|
||||
$kcmdline .= "XCAT=$xcatmaster:$xcatdport quiet ";
|
||||
$kcmdline .= "NODE=$node ";
|
||||
|
||||
# add the kernel-booting parameter: netdev=<eth0>, or BOOTIF=<mac>
|
||||
my $netdev = "";
|
||||
|
Loading…
Reference in New Issue
Block a user