Alright there's some gotchas. * pkgdir can only in fact be used for packages available from the distro itself (copycds); perhaps updates would be viable? * I've changed to a scheme like Brian has said: otherpkgs, but it's still confusing.
I wasn't able to use my "dnf reposync" mirrors with otherpkgdir, instead I've
added them just like in the last message, on pkgdir and I was able to install
the packages that are included with otherpkglist, so here is my definitions
right now:
# lsdef -t osimage ol8.4.0-x86_64-install-compute
Object name: ol8.4.0-x86_64-install-compute
imagetype=linux
osarch=x86_64
osdistroname=ol8.4.0-x86_64
osname=Linux
osvers=ol8.4.0
otherpkgdir=/install/post/otherpkgs/ol8.4.0/x86_64
otherpkglist=/install/custom/install/compute.otherpkgs.pkglist
pkgdir=/install/ol8.4.0/x86_64,/install/openhpc-2.2/CentOS_8,/install/epel-8/x86_64
pkglist=/install/custom/install/compute.pkglist
profile=compute
provmethod=install
synclists=/install/custom/install/compute.synclist
template=/opt/xcat/share/xcat/install/ol/compute.ol8.tmpl
/install/post/otherpkgs/ol8.4.0/x86_64 is just an empty folder that I've run
createrepo, with nothing, so dnf/yum will not break in the first boot.
That's the content of: /install/custom/install/compute.otherpkgs.pkglist:
fping
libconfuse
libunwind
ohpc-base-compute
lmod-ohpc
So it seems OK, but again, I'm not sure if this is correct or not. I was trying
to keep files on otherpkgdir but xCAT can't create proper repositories because
I probably messed up with the otherpkgs.pkglist. In the first try I created the
file with the following contents:
epel-8/x86_64/fping
epel-8/x86_64/libconfuse
epel-8/x86_64/libunwind
openhpc-2.2/CentOS_8/updates/x86_64/ohpc-base-compute
openhpc-2.2/CentOS_8/x86_64/lmod-ohpc
But that was a no go. It just didn't worked with xCAT only creating a broken
repo file that messes the paths of EPEL and OpenHPC in a single URL.
I still have the issue regarding the online repos, but I just sent a rm -f on a
postscript to "fix" the issue. Definitely no "The Right Way (tm)" to do it.
Thanks again,
Vinícius.
> On 6 Jun 2021, at 00:52, Vinícius Ferrão <[email protected]> wrote:
>
> Thanks Mark and Brian.
>
> I'm trying to find my way around, right now I've modified the following:
>
> ===> observe: pkgdir; pkglist and synclists.
>
> # lsdef -t osimage ol8.4.0-x86_64-install-compute
> Object name: ol8.4.0-x86_64-install-compute
> imagetype=linux
> osarch=x86_64
> osdistroname=ol8.4.0-x86_64
> osname=Linux
> osvers=ol8.4.0
> otherpkgdir=/install/post/otherpkgs/ol8.4.0/x86_64
>
> pkgdir=/install/ol8.4.0/x86_64,/install/openhpc-2.2/CentOS_8,/install/epel-8/x86_64
>
> pkglist=/opt/xcat/share/xcat/install/ol/compute.ol8.pkglist,/install/custom/install/compute.pkglist
> profile=compute
> provmethod=install
> synclists=/install/custom/install/compute.synclist
> template=/opt/xcat/share/xcat/install/ol/compute.ol8.tmpl
>
> # cat /install/custom/install/compute.pkglist
> yum-utils
> perl
> fping
> libconfuse
> libunwind
> ohpc-base-compute
> kernel-uek
> lmod-ohpc
> @infiniband
>
> # cat /install/custom/install/compute.synclist
> MERGE:
> /etc/passwd -> /etc/passwd
> /etc/group -> /etc/group
> /etc/shadow -> /etc/shadow
>
> The issue now is that, it seems that pkglist was ignored. I think I should
> have added the extra pacakges to otherpkgs instead. Right?
>
>
>
>
>
> The postscript seems to be ignored too:
>
> ===> observe: postscripts
>
> [root@headnode epel-8]# lsdef -t node node01
> Object name: node01
> arch=x86_64
> bmc=172.25.0.1
> bmcpassword=calvin
> bmcusername=root
> cons=ipmi
> consoleenabled=1
> currchain=boot
> currstate=boot
> groups=compute,all
> ip=172.26.0.1
> mac=bc:97:e1:ca:35:10
> mgt=ipmi
> netboot=xnba
> nicips.ib0=172.27.0.1
> nicnetworks.ib0=ib0
> nictypes.ib0=Infiniband
> os=ol8.4.0
> postbootscripts=otherpkgs,confignics
> postscripts=syslog,remoteshell,syncfiles,versatushpc/postinstall
> profile=compute
> provmethod=ol8.4.0-x86_64-install-compute
> serialport=0
> serialspeed=115200
> status=failed
> statustime=06-06-2021 00:11:15
>
> # cat /install/postscripts/versatushpc/postinstall
> exec 1> >(logger -s -t xCAT -p local4.info <http://local4.info/>) 2>&1
>
> # Create directories
> mkdir -p /opt/spack
> mkdir -p /opt/intel
>
> # Configure limits
> perl -pi -e 's/# End of file/\* soft memlock unlimited\n$&/s'
> /etc/security/limits.conf
> perl -pi -e 's/# End of file/\* hard memlock unlimited\n$&/s'
> /etc/security/limits.conf
>
> # Enable RDMA if it isn't enabled yet and start it
> systemctl enable --now rdma
>
> # Configure and enable OpenPBS
> perl -pi -e "s/PBS_SERVER=\S+/PBS_SERVER=headnode/" /etc/pbs.conf
> echo "PBS_LEAF_NAME=headnode" >> /etc/pbs.conf
> /opt/pbs/libexec/pbs_habitat
> perl -pi -e "s/\$clienthost \S+/\$clienthost headnode/"
> /var/spool/pbs/mom_priv/config
> echo "\$usecp *:/home /home" >> /var/spool/pbs/mom_priv/config
> systemctl enable --now pbs
>
>
>
> I'm not sure if the postscript didn't run because something went wrong on the
> install phase of not.
>
> And as for a last question, for stateful nodes, shouldn't internet
> repositores be disabled by default? I'm asking this because nodes don't have
> internet connection.
>
> Thanks again.
>
> PS: For me stateless mode seem way easier, but this is probably due to the
> fact that I'm used to it.
>
>> On 4 Jun 2021, at 11:05, Mark Gurevich <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> For #4, you can also include pkglist inside pkglist with "INCLUDE":
>>
>> []$ cat cudafull.rhels7.ppc64le.pkglist
>>
>> #INCLUDE:compute.rhels7.pkglist#
>>
>> #For Cuda
>> kernel-devel
>> gcc
>> pciutils
>> dkms
>> cuda
>> []$
>>
>> Mark Gurevich
>> Poughkeepsie Development Lab
>> HPC Software Development - xCAT
>>
>> "If we knew what it was we were doing, it would not be called research,
>> would it?"
>> --Albert Einstein
>>
>>
>>
>> <graycol.gif>Brian Joiner ---06/04/2021 09:32:37 AM---1. Syncfiles is a
>> default postbootscript, so its supposed to run on every deploy. If its not
>> runn
>>
>> From: Brian Joiner <[email protected]
>> <mailto:[email protected]>>
>> To: [email protected] <mailto:[email protected]>
>> Date: 06/04/2021 09:32 AM
>> Subject: [EXTERNAL] Re: [xcat-user] Stateful provisioning customization
>>
>>
>>
>>
>> 1. Syncfiles is a default postbootscript, so its supposed to run on every
>> deploy. If its not running, check your postscript table to make sure its
>> there as a default. You can call it again if you think a package install is
>> overwriting one of your custom files, just add it to the node postbootscipt
>> line in the desired order
>> 2. Otherpkgs works fine, the difference is it runs as a postbootscript
>> after the reboot, as if you were running a yum command from the OS (as
>> opposed to stateless which packages them up in the image)
>>
>> 3. For stateless there really is no "image" as fas as I know, all
>> customizations are handled with OS/group/node definitions and postscripts.
>> I don't like to mess with the osdef too much other than the syncfiles.list
>> and otherpkgs stuff. Kepp in mind, you can create any script you want, for
>> example to install extra rpm's after the main os deploys but before the
>> reboot (like say mellanox drivers, that may require a reboot)
>>
>> 4. I don't think so, but again if you need other packages just create a
>> script with a yum command and attach it to the group/node def postbootscript
>> or posctript line (making sure your order is what you want).
>>
>>
>> Thanks,
>>
>> Brian Joiner
>>
>> On 6/4/21 00:30, Vinícius Ferrão via xCAT-user wrote:
>>
>> Hello,
>>
>> I'm doing an stateful install right now, and I have some questions to those
>> who use the stateful method. Since I'm already used to stateless
>> provisioning I'm trying to adapt it's concepts to stateful.
>>
>> So here we go:
>>
>> 1. Can I use syncfiles to issue "updatenode all -F" when needed?
>>
>> The ideia is to have a custom file with the synclist and run a command
>> similar to: chdef -t osimage -o ol8.4.0-x86_64-install-compute
>> synclists="/install/custom/install/compute.synclist"
>>
>> 2. Otherpkgs works in stateful profile?
>>
>> Can I add otherpkgdir and otherpkglist to -install images? It will install
>> the packages during the provision phase? There's any use case for it?
>>
>> 3. Where should I do the customization inside the image?
>>
>> On stateless I just chroot after "genimage", do whatever I need to do,
>> change confs, enable/disable service, etc, and them "packimage". How can I
>> achieve something similar with stateful nodes?
>>
>> 4. Can I have multiple pkglist and otherpkglist files?
>>
>> The ideia here is to keep the default ones from xCAT untouched and just add
>> additional ones separated by commas in osimage definition.
>>
>> Thanks all.
>>
>> PS: I did some reading before, but I was only able to find precise
>> information, I've only found for hierarchical clusters and specific cases
>> like CUDA, and finally I'm not sure which is "The Right Way (tm)" to achieve
>> the functionality mentioned.
>>
>> https://xcat-docs.readthedocs.io/en/stable/advanced/hierarchy/provision/diskful_sn.html
>>
>> <https://xcat-docs.readthedocs.io/en/stable/advanced/hierarchy/provision/diskful_sn.html>
>> https://xcat-docs.readthedocs.io/en/stable/advanced/gpu/nvidia/osimage/rhels.html#diskless-images
>>
>> <https://xcat-docs.readthedocs.io/en/stable/advanced/gpu/nvidia/osimage/rhels.html#diskless-images>
>> https://myxcat.readthedocs.io/en/latest/advanced/networks/infiniband/mlnxofed_ib_install_v2_diskful.html?highlight=Infiniband%20Support
>>
>> <https://myxcat.readthedocs.io/en/latest/advanced/networks/infiniband/mlnxofed_ib_install_v2_diskful.html?highlight=Infiniband%20%20%20%20%20%20%20%20%20%20%20%20Support>
>>
>>
>>
>> _______________________________________________
>> xCAT-user mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.sourceforge.net/lists/listinfo/xcat-user
>> <https://lists.sourceforge.net/lists/listinfo/xcat-user>
>> _______________________________________________
>> xCAT-user mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.sourceforge.net/lists/listinfo/xcat-user
>> <https://lists.sourceforge.net/lists/listinfo/xcat-user>
>>
>>
>>
>>
>> _______________________________________________
>> xCAT-user mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.sourceforge.net/lists/listinfo/xcat-user
>
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ xCAT-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/xcat-user
