mirror of
https://github.com/xcat2/xcat-core.git
synced 2025-05-22 03:32:04 +00:00
Adjust the server used for kernel/initrd and imgurl for petitboot (#4416)
- URL for kernel/initrd, get the value from below value tftpserver -> xcatmaster -> myipfn - URL for image, get the value from below value nfsserver -> tftpserver -> xcatmaster -> myipfn
This commit is contained in:
parent
ddeb14f358
commit
d447882fd5
@ -549,10 +549,11 @@ sub mknetboot
|
||||
$xcatmaster = '!myipfn!'; #allow service nodes to dynamically nominate themselves as a good contact point, this is of limited use in the event that xcat is not the dhcp/tftp server
|
||||
}
|
||||
|
||||
if ($ient and $ient->{tftpserver} and $ient->{tftpserver} ne '<xcatmaster>') {
|
||||
if ($ient and $ient->{nfsserver} and $ient->{nfsserver} ne '<xcatmaster>') {
|
||||
$imgsrv = $ient->{nfsserver};
|
||||
}elsif ($ient and $ient->{tftpserver} and $ient->{tftpserver} ne '<xcatmaster>') {
|
||||
$imgsrv = $ient->{tftpserver};
|
||||
} else {
|
||||
$ient = $reshash->{$node}->[0];
|
||||
$imgsrv = $xcatmaster;
|
||||
}
|
||||
|
||||
@ -591,11 +592,8 @@ sub mknetboot
|
||||
|
||||
# get entry for nfs root if it exists:
|
||||
# have to get nfssvr and nfsdir from noderes table
|
||||
my $nfssrv = $imgsrv;
|
||||
my $nfssrv = $imgsrvip;
|
||||
my $nfsdir = $rootimgdir;
|
||||
if ($ient->{nfsserver}) {
|
||||
$nfssrv = $ient->{nfsserver};
|
||||
}
|
||||
if ($ient->{nfsdir} ne '') {
|
||||
$nfsdir = $ient->{nfsdir} . "/netboot/$osver/$arch/$profile";
|
||||
|
||||
|
@ -1267,44 +1267,24 @@ sub mknetboot
|
||||
my $xcatmaster;
|
||||
|
||||
$ient = $reshash->{$node}->[0]; #$restab->getNodeAttribs($node, ['tftpserver']);
|
||||
|
||||
if ($ient and $ient->{xcatmaster})
|
||||
{
|
||||
if ($ient and $ient->{xcatmaster}) {
|
||||
$xcatmaster = $ient->{xcatmaster};
|
||||
} else {
|
||||
$xcatmaster = '!myipfn!'; #allow service nodes to dynamically nominate themselves as a good contact point, this is of limited use in the event that xcat is not the dhcp/tftp server
|
||||
}
|
||||
|
||||
if ($ient and $ient->{tftpserver})
|
||||
{
|
||||
if ($ient and $ient->{nfsserver} and $ient->{nfsserver} ne '<xcatmaster>') {
|
||||
$imgsrv = $ient->{nfsserver};
|
||||
}elsif ($ient and $ient->{tftpserver} and $ient->{tftpserver} ne '<xcatmaster>') {
|
||||
$imgsrv = $ient->{tftpserver};
|
||||
}
|
||||
else
|
||||
{
|
||||
$ient = $reshash->{$node}->[0]; #$restab->getNodeAttribs($node, ['xcatmaster']);
|
||||
#if ($ient and $ient->{xcatmaster})
|
||||
#{
|
||||
# $imgsrv = $ient->{xcatmaster};
|
||||
#}
|
||||
#else
|
||||
#{
|
||||
# master not correct for service node pools
|
||||
#$ient = $sitetab->getAttribs({key => master}, value);
|
||||
#if ($ient and $ient->{value})
|
||||
#{
|
||||
# $imgsrv = $ient->{value};
|
||||
#}
|
||||
#else
|
||||
#{
|
||||
# $imgsrv = '!myipfn!';
|
||||
#}
|
||||
#}
|
||||
} else {
|
||||
$imgsrv = $xcatmaster;
|
||||
}
|
||||
unless ($imgsrv) {
|
||||
xCAT::MsgUtils->report_node_error($callback, $node, "Unable to determine or reasonably guess the image server for $node");
|
||||
next;
|
||||
}
|
||||
|
||||
my $kcmdline;
|
||||
if ($statelite) {
|
||||
if (rootfstype ne "ramdisk") {
|
||||
@ -1313,9 +1293,6 @@ sub mknetboot
|
||||
# have to get nfssvr and nfsdir from noderes table
|
||||
my $nfssrv = $imgsrv;
|
||||
my $nfsdir = $rootimgdir;
|
||||
if ($ient->{nfsserver}) {
|
||||
$nfssrv = $ient->{nfsserver};
|
||||
}
|
||||
if ($ient->{nfsdir} ne '') {
|
||||
$nfsdir = $ient->{nfsdir} . "/netboot/$osver/$arch/$profile";
|
||||
|
||||
|
@ -94,8 +94,8 @@ sub setstate {
|
||||
if ($kern->{kernel} !~ /^$tftpdir/) {
|
||||
my $nodereshash = $nrhash{$node}->[0];
|
||||
my $installsrv;
|
||||
if ($nodereshash and $nodereshash->{nfsserver}) {
|
||||
$installsrv = $nodereshash->{nfsserver};
|
||||
if ($nodereshash and $nodereshash->{tftpserver}) {
|
||||
$installsrv = $nodereshash->{tftpserver};
|
||||
} elsif ($nodereshash->{xcatmaster}) {
|
||||
$installsrv = $nodereshash->{xcatmaster};
|
||||
} else {
|
||||
@ -574,7 +574,7 @@ sub process_request {
|
||||
my $chaintab = xCAT::Table->new('chain', -create => 1);
|
||||
my $chainhash = $chaintab->getNodesAttribs(\@nodes, ['currstate']);
|
||||
my $noderestab = xCAT::Table->new('noderes', -create => 1);
|
||||
my $nodereshash = $noderestab->getNodesAttribs(\@nodes, [ 'tftpdir', 'xcatmaster', 'nfsserver', 'servicenode' ]);
|
||||
my $nodereshash = $noderestab->getNodesAttribs(\@nodes, [ 'tftpdir', 'xcatmaster', 'tftpserver', 'servicenode' ]);
|
||||
my $typetab = xCAT::Table->new('nodetype', -create => 1);
|
||||
my $typehash = $typetab->getNodesAttribs(\@nodes, [ 'os', 'provmethod', 'arch', 'profile' ]);
|
||||
my $linuximgtab = xCAT::Table->new('linuximage', -create => 1);
|
||||
|
@ -411,41 +411,21 @@ sub mknetboot
|
||||
my $ient;
|
||||
my $xcatmaster;
|
||||
|
||||
$ient = $restab->getNodeAttribs($node, ['xcatmaster']);
|
||||
if ($ient and $ient->{xcatmaster})
|
||||
{
|
||||
$ient = $reshash->{$node}->[0]; #$restab->getNodeAttribs($node, ['tftpserver']);
|
||||
if ($ient and $ient->{xcatmaster}) {
|
||||
$xcatmaster = $ient->{xcatmaster};
|
||||
} else {
|
||||
$xcatmaster = '!myipfn!'; #allow service nodes to dynamically nominate themselves as a good contact point, this is of limited use in the event that xcat is not the dhcp/tftp server
|
||||
}
|
||||
|
||||
$ient = $restab->getNodeAttribs($node, ['tftpserver']);
|
||||
if ($ient and $ient->{tftpserver})
|
||||
{
|
||||
if ($ient and $ient->{nfsserver} and $ient->{nfsserver} ne '<xcatmaster>') {
|
||||
$imgsrv = $ient->{nfsserver};
|
||||
}elsif ($ient and $ient->{tftpserver} and $ient->{tftpserver} ne '<xcatmaster>') {
|
||||
$imgsrv = $ient->{tftpserver};
|
||||
}
|
||||
else
|
||||
{
|
||||
# $ient = $restab->getNodeAttribs($node, ['xcatmaster']);
|
||||
# if ($ient and $ient->{xcatmaster})
|
||||
# {
|
||||
# $imgsrv = $ient->{xcatmaster};
|
||||
# }
|
||||
# else
|
||||
# {
|
||||
# # master removed, does not work for servicenode pools
|
||||
# #$ient = $sitetab->getAttribs({key => master}, value);
|
||||
# #if ($ient and $ient->{value})
|
||||
# #{
|
||||
# # $imgsrv = $ient->{value};
|
||||
# #}
|
||||
# #else
|
||||
# #{
|
||||
# $imgsrv = '!myipfn!';
|
||||
# #}
|
||||
# }
|
||||
} else {
|
||||
$imgsrv = $xcatmaster;
|
||||
}
|
||||
|
||||
unless ($imgsrv)
|
||||
{
|
||||
xCAT::MsgUtils->report_node_error($callback, $node, "Unable to determine or reasonably guess the image server for $node");
|
||||
@ -463,14 +443,8 @@ sub mknetboot
|
||||
my $nfssrv = $imgsrv;
|
||||
my $nfsdir = $rootimgdir;
|
||||
|
||||
if ($restab) {
|
||||
my $resHash = $restab->getNodeAttribs($node, [ 'nfsserver', 'nfsdir' ]);
|
||||
if ($resHash and $resHash->{nfsserver}) {
|
||||
$nfssrv = $resHash->{nfsserver};
|
||||
}
|
||||
if ($resHash and $resHash->{nfsdir} ne '') {
|
||||
$nfsdir = $resHash->{nfsdir} . "/netboot/$osver/$arch/$profile";
|
||||
}
|
||||
if ($ient->{nfsdir} ne '') {
|
||||
$nfsdir = $ient->{nfsdir} . "/netboot/$osver/$arch/$profile";
|
||||
}
|
||||
if (&using_dracut($rootimgdir)) {
|
||||
$kcmdline = "root=nfs:$nfssrv:$nfsdir/rootimg:ro STATEMNT=";
|
||||
|
Loading…
x
Reference in New Issue
Block a user