Hello,
We're using xCAT 2.14.5 on CentOS 7.6 to provision stateless CentOS 7.6
images on switch-based discovered HPC servers.
The setup is quite standard for that matter.chain looks like this :
"devhpc-compute",,,"runcmd=bmcsetup,osimage=centos7.6-x86_64-netboot-compute",,,
and it all works fine.
We also want to setup some BIOS parameters (like disabling
HyperThreading for instance) at discovery time. We naturally came with
adding a runimage task in chain as a solution. Something like this :
"devhpc-compute",,,"runcmd=bmcsetup,runimage=<image-which-setup-bios-url>,osimage=centos7.6-x86_64-netboot-compute",,
where image-which-setup-bios installs and runs the proprietary
manufacturer tool which enables to set up bios options.
The problem is that, while it works fine with some manufacturers, for
some others, the tool they provide to do that inband (that is from
inside the OS) is too rich for the lightweight genesis base (as it
requires to run some Redfish aware daemons and other services).
As a matter of fact we didn't even manage to install it via the runimage
mechanism or via a discovery shell destiny.
Besides, we cannot even run rpm in the genesis chroot (as NSS parts are
missing, not to mention systemd which might as well cause issues)
We investigate several path to workaround the issue :
1. trying to build a richer genesis image
Our understanding is that genesis is generated with the
xCAT-genesis-builder which itself uses dracut-install
- the xCAT-genesis-builder tool seems to be in beta version ?
- if feasible, it would be tedious and would mean to manually install
every files (as opposed to install some package), correct ?
2. the manufacturer tool installs correctly in the final standard CentOS
7.6 image (the one that ends up chain) so we thought it would be cool to
be able to chain TWO images at the end of discovery. But it would mean
to be able to do something like
a) ending up chain with osimage A wich would :
- install the manufacturer tool and run it
- remotely change the pxe target to osimage B on xCAT master node
- reboot
b) [image B]
Not to mention a longer time to bring up the actual final image (image B)
3. it may be acceptable to finally setup bios out of band (that is from
the xCAT master for instance, which the manufacturer tool enables to do)
as long as it is somehow synchronized with discovery.
So we thout about using the prescripts mechanism, but on the wrong
assumption that at the end of discovery, genesis performed the API call
equivalent to nodeset <node> <osimage-which-ends-up-chain> and that
the prescript (which would remotely set up the node bios) would be
executed just as when we run a nodeset <node> osimage on the master
Unfortunately, it doesn't seem to work like that : prescripts seem to be
called only when we actually launch nodeset/xcat-client from the master ?
So the question is :
- how exactly does the genesis the pxe target files (igpe scripts in
/tftpboot/xcat/xnba/nodes/<node>) get changed at the end of the chain
(when chain ends up with osimage=<image>) ?
Is it on genesis request (genesis -> master) or on master initiative ?
- is there a way to execute prescripts or some kind of other hook, on
the master at discovery time or synchronized with discovery time (we
tend to exclude postscript/postbootscripts for now as it isn't discovery
anymore at that time) ?
Thanks
--
Thomas HUMMEL
_______________________________________________
xCAT-user mailing list
xCAT-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xcat-user