Issue https://github.com/xcat2/xcat-core/issues/6774

On 7/15/20 12:05 PM, Jean-Baptiste Denis wrote:
I've removed chrony and others from the pkglist used during the genimage stage. One problem remain on my CentOS 8 stateless image with the "unbound" user:

$ grep unbound /etc/passwd
unbound:x:997:995:Unbound DNS resolver:/etc/unbound:/sbin/nologin

$ ROOTIMG=/install/image/netboot/cpu/netboot-cpu-centos8.1/img/rootimg
$ grep unbound $ROOTIMG/etc/passwd
unbound:x:998:996:Unbound DNS resolver:/etc/unbound:/sbin/nologin

$ ls -dn $ROOTIMG/var/lib/unbound/
drwxr-xr-x 2 997 995 22 Jul 15 11:28 
/install/image/netboot/cpu/netboot-cpu-centos8.1/img/rootimg/var/lib/unbound/

$ ls -dn $ROOTIMG/var/lib/unbound/root.key
-rw-r--r-- 1 997 995 832 May 14  2019 
/install/image/netboot/cpu/netboot-cpu-centos8.1/img/rootimg/var/lib/unbound/root.key

Inside the rootimg, unbound files have bad ownership (uid/gid from /etc/passwd).

unbound user and associated files are coming from unbound-libs packages 
installation, which is a dependencies of dnf.

I can workaround this in a postinstall script of course. But the general problem of using yum --installroot at the genimage stage looks like a real problem that should be adressed at the xcat level.

Jean-Baptiste

On 7/15/20 7:14 AM, Jean-Baptiste Denis wrote:
Hi,

thank you for the suggestion and the postintall template.

We are doing a similar things with slurm/munge and others to ensure that we've 
got the same uid/gid on every node, using
ansible in a chroot context.

I don't want to freeze every system uid/gid. I think I'll shrink my pkglist to 
the absolutely strict necessary -insand
do most of my package installation in the chroot context, without using 
--installroot.

Jean-Baptiste

On 7/15/20 5:55 AM, Carl wrote:
Hi,

Chrony seems to pickup the correct file ownership for our environment,
so I cant really comment on where it might be going wrong for you.

However, I can provide a workaround. The code below is based on the
compute.postinstall template and what we use to setup SLURM. So it
would be trivial to adapt to your situation.

Cheers,

Carl.

----
#

installroot=$1
osver=$2
arch=$3
profile=$4
workdir=$5

# Create the munge user and group
cat << EOF | chroot $installroot
/usr/sbin/groupadd -r -g 900 munge
/usr/sbin/useradd -r -u 900 -g munge -d /var/run/munge -s
/sbin/nologin -c "Runs Uid 'N' Gid Emporium" munge
/usr/sbin/groupadd -r -g 901 slurm
/usr/sbin/useradd -r -u 901 -g slurm -d /var/run/slurm -s
/sbin/nologin -c "SLURM resource manager" slurm
EOF

# Install munge
/usr/bin/yum --installroot=$installroot -y localinstall
/install/post/otherpkgs/centos7/x86_64/munge*
/usr/bin/rsync -a /etc/munge $installroot/etc/

# Setup slurmd
cp -f /usr/local/src/SLURM/current/etc/slurmd.service
$installroot/usr/lib/systemd/system/

# Enable munge and slurm services to start on boot
cat << EOF | chroot $installroot
/usr/bin/systemctl enable munge
/usr/bin/systemctl enable slurmd
EOF
----

On Wed, 15 Jul 2020 at 01:06, Jean-Baptiste Denis <jbde...@pasteur.fr> wrote:

Tedious indeed. Here is the list of users with different uid/gid between xcat 
server and my stateless image:

# join -j 1 <(awk -F: '{print $1" "$3":"$4}'
/install/image/netboot/cpu/netboot-cpu-centos8.1/img/rootimg/etc/passwd|sort) <(awk -F: '{print 
$1" "$3":"$4}'
/etc/passwd | sort) | column -t | awk '{ if ($2!=$3) { print $0} }'
chrony            994:990      995:992
pcp               997:994      400:399
polkitd           998:995      998:996
sssd              995:991      996:993
unbound           996:993      997:995

I need to think about the best way to handle this. I can't say if there is a 
solution on the xcat side though, aside of
not using yum --installroot and run yum in the chroot context ?

Jean-Baptiste

On 7/14/20 1:15 PM, Jean-Baptiste Denis wrote:
Details here:

https://bugzilla.redhat.com/show_bug.cgi?id=1718146
https://github.com/rpm-software-management/rpm/issues/882

I was not aware of this behavior, but it makes sense.

The only viable solution seems to remove all the xcat pkglist packages that are 
creating user and directories during
installation. That's doable, but it's quite tedious.

Jean-Baptiste

On 7/14/20 1:01 PM, Jean-Baptiste Denis wrote:
In fact, I can reproduce the problem only using yum:

$ yum --installroot /tmp/chronytest install chrony

The resulting /tmp/chronytest/var/lib/chrony has the uid/gid of the chrony user 
of /etc/passwd, not
/tmp/chronytest/etc/passwd.

Jean-Baptiste

On 7/14/20 12:41 PM, Jean-Baptiste Denis wrote:
Hello,

I've got a problem regarding some uid inside a stateless image.

I've got my xcat server with chrony installed:

$ grep chrony /etc/passwd
chrony:x:995:992::/var/lib/chrony:/sbin/nologin

The chrony user has uid 995 and gid 992 on the xcat server.

Inside the stateless image, just after the genimage (chrony is installed using a pkglist), the chrony user has uid 994
and gid 990:

$ grep chrony 
/install/image/netboot/cpu/netboot-cpu-centos8.1/img/rootimg/etc/passwd
chrony:x:994:990::/var/lib/chrony:/sbin/nologin

The problem is that the chrony package installation is creating a 
/var/lib/chrony directory in the rootimg directory
using the chrony user from the xcat host and not the one from the image:

$ ls -nd 
/install/image/netboot/cpu/netboot-cpu-centos8.1/img/rootimg/var/lib/chrony/
drwxr-xr-x 2 995 992 6 Nov 19  2019 
/install/image/netboot/cpu/netboot-cpu-centos8.1/img/rootimg/var/lib/chrony/

It should be 994:990.

This is problematic, because when I boot on the image, the /var/lib/chrony 
directory owner is 'sssd' and group is
'systemd-coredump'. I've only spotted this specific problem, but it could potentially concerns other users/groups. I'd
rather not just 'fixing' the owner/group of this directory. One solution could 
be to remove all packages that create
users from the pkglist and install them after directory in the chroot.

It seems to me quite difficult to synchronize *system* user/group on the xcat server and within the images. It basically
depends on the package order installation.

So I was wondering if I was doing something wrong here ? Maybe I missed 
something.

Thank you,

Jean-Baptiste


_______________________________________________
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





_______________________________________________
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




_______________________________________________
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



_______________________________________________
xCAT-user mailing list
xCAT-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xcat-user

Reply via email to