xcat-core
xcat-core copied to clipboard
[Feature Request] Supporting Installation of AppStream Modules through Package Lists
RHEL 8 introduced the concept of AppStream Modules, which are basically consistent sets of packages: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/installing_managing_and_removing_user-space_components/introduction-to-modules_using-appstream
AppStream Modules are slightly different than standard YUM groups (which are already supported by xCAT): https://xcat-docs.readthedocs.io/en/stable/guides/admin-guides/manage_clusters/common/deployment/additionalpkg/nonubuntu_os_pkg.html#group-pattern-names
AppStream Modules get installed through a specific yum module install
command.
It would be convenient to have AppStream Modules installation supported through regular Package Lists in xCAT.
This is a good feature request. Enhancing xCAT to take better advantage of dnf
features has been desirable since dnf
replaced yum
; this issue will give us a good way to track the specific aspect of AppStream Module support in xCAT.
@nicolas-tallet Have you tried just adding a module name to the package list with a @
used for groups ?
Something like, @ ruby:2.6
seems to work for me for diskfull node provisioning and for genimage
, (fails for updatenode
however)
@gurevichmark : We haven't performed any recent attempt, but at the time we were working on RHEL8 OS images, it looked to us that just adding the @
symbol for AppStream modules was not working, which was not a surprise given the fact that the actual YUM command is specific to modules (as far as I remember, xCAT generates a simple yum install
command while modules require a yum install module
command).
@nicolas-tallet Do you remember what error you got when you tried yum install @<module>
?
I tried on RH8.2, RH8.4 and RH8.6:
[root@f6u13k16 ~]# hostnamectl | grep "Operating"
Operating System: Red Hat Enterprise Linux 8.2 (Ootpa)
[root@f6u13k16 ~]# yum install --assumeno @ruby:2.6 | grep "Enabling module streams" -A1
Enabling module streams:
ruby 2.6
[root@c910f03c09k15 ~]# hostnamectl | grep "Operating"
Operating System: Red Hat Enterprise Linux 8.4 (Ootpa)
[root@c910f03c09k15 ~]# yum install --assumeno @ruby:2.6 | grep "Enabling module streams" -A1
Enabling module streams:
ruby 2.6
[root@c910f04x37v05 ~]# hostnamectl | grep "Operating"
Operating System: Red Hat Enterprise Linux 8.6 (Ootpa)
[root@c910f04x37v05 ~]# yum install --assumeno @ruby:2.6 | grep "Enabling module streams" -A1
Enabling module streams:
ruby 2.6
Also, looking at man yum/dnf
it seems to indicate that it handles packages, modules and groups:
Install Command
dnf [options] install <spec>...
Makes sure that the given packages and their dependencies are installed on the system.
Each <spec> can be either a <package-spec>, or a @<module-spec>, or a @<group-spec>. See
Install Examples. If a given package or provide cannot be (and is not already) installed,
the exit code will be non-zero. If the <spec> matches both a @<module-spec> and a @‐
<group-spec>, only the module is installed.
@gurevichmark : To be honest, our attempts date back to several months ago so I don't remember precisely what actually gave us the feeling that this would not work. Please allow us to perform one new test and I'll get back to you with its outcome (be it positive or not). Could you please confirm that generating a stateless OS image is a supported scenario (which is what I understand fro your earlier post, but I would like to be sure we can give it a try in this specific configuration)?
@nicolas-tallet Yes, with changes to ospkgs
postscript from #7241, diskless OS images worked for me, specifying groups or modules in the pkglist.
@gurevichmark : Tests performed on our side (in a stateless OS images configuration) could confirm that using the suggested ospkgs
postscript makes it possible to install AppStream Modules through xCAT Other Packages Lists. Thanks for that.