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

Reply via email to