xCAT-genesis-builder is indeed how genesis is built, though I don't think anyone has done a lot of work to polish it up to do more. All it does is Dracut up a very small amount.
In principle a runimage should be possible for anything, though depending on what package you are talking about, it may be a challenging undertaking to stub out various dependencies/extract the core procedure. I'm surprised that something would be reliant on redfish and yet have a lot of dependencies. Does this vendor manifest the service processor as an Ethernet device or similar? Genesis at least in our distribution has a pretty healthy python runtime that could run redfish against an Ethernet target, though enrichments are coming to pyghmi to make redfish manipulation from genesis easier comes after holiday season. -----Original Message----- From: Thomas HUMMEL <thomas.hum...@pasteur.fr> Sent: Thursday, December 20, 2018 4:44 AM To: xcat-user@lists.sourceforge.net Subject: [External] [xcat-user] Running a service in genesis 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 _______________________________________________ xCAT-user mailing list xCAT-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xcat-user