-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cobbler sync fails with containerized server #485
Comments
Thanks for the report. |
How does PXE booting for autoinstallable distributions work with squid? Doesn't PXE booting pretty much require TFTP for the initial bootstrap download? And, if that's the case, why is there even an uyuni-proxy-tftpd container in the pod? When was dropping this functionality announced in either community hours or release notes? I remember the deprecation and removal of legacy/traditional (aka jabber-mediated) client connections being mentioned, but not this. Is there a way to reenable this through some changes to the Apache httpd configuration (since cobbler seems to try to use that pathway) or was the ability of cobbler to update the tftpd service data directory considered too much of a security vulnerability? Or is the issue that apache httpd and tftpd are in separate containers so that httpd can't access the tftpd data directories? Come to think that's last is almost certainly the problem, but shouldn't it be possible for the /var/lib/containers/storage/volumes/uyuni-proxy-tftpboot/ volume to be mapped into both containers? Looks like the z option is what should be used for sharing a volume - is that not working for some reason? Anyways, as you can tell, I have many questions. :-) OK, to answer my own questions, you've switched from in.tftpd to the python3-fbtftp package which presumably you've extended to tap into the squid proxy. I can't figure out how it should be working or logging access though, or how to configure it to increase logging. When I try to use a pxeclient, it seems to get the right parameters from the DHCP server, but it's never successful on obtaining the PXE bootstrap file via TFTP. I don't see anything in a packet capture on the proxy server either. The dhcp server config is the one generated by cobbler
The client shows
and then moves on to try to get the EFI bootstrap file over IPv6 and HTTP, which similarly fail. |
As you already found out, tftp container is using fbtftp which translates tftp requests to http and reuses existing proxy caching mechanism to cache pxe/uefi pxe data.
With proxy we split all services to their separate containers. So tftp service has it's own container.
I do not think this was announced. The only functionality drop should be no longer needed tftpsync and cobbler sync calls, which was quite a performance bottleneck.
There is not.
I expect that tftpboot volume will be removed in the future. Both EFI and legacy pxe boot should work without any action from the user. How is your |
On the server, it has some stuff in it.
Is there any kind of access logging we can look at for the TFTP service? Looking in the /var/log of the tftpd container (with podman exec -ti uyuni-proxy-tftpd /bin/bash) doesn't show anything that seems relevant. The access_log for the httpd container is empty. |
This seems like a cobbler issue. I don't see Not sure why would cobbler ask for So options:
At my test systems both |
We're mostly using the default cobbler settings I think. The parameters that we override are
That said, yes, the settings.yaml had
However, changing it to use binary_name: grubx64.efi and running cobbler mkloaders did not create or add a grubx64.efi in the /srv/cobbler/grub directory so I don't think that would be an improvement. After those changes and commands the directory contents still look like this.
Now the Uyuni documentation does say to only use pxelinux.0 as the filename option for DHCP, but I don't think that ever worked for us. The one time I actually managed to get a client to bootstrap grub before the container conversion, I'm pretty sure that wasn't with pxelinux.0, and it would not display OS options on the grub menu. The /srv/cobbler/pxelinux.cfg/ directory only has one file with basically an empty menu.
Now I remember reading that cobbler should have both a distro and a profile set up, for it to work, and I only see a distro set up.
so I'm wondering if maybe something wasn't set up by Uyuni, but I thought I went through all the documented steps. Cobbler check gives
and andmenu.c32 is missing from the /srv/cobbler tree, but there's nothing there that seems to be something I can change in the container (or else it seems likely to have been replaced by proxy squid services and not be relevant). Has this functionality been successfully regression tested in the containerized environment with something other than SUSE SLES? Or is it like the AD/Kerberos sssd integration? |
pxelinux.0 should work, but do check if you are not reading saltboot/retail docs rather cobbler autoinstallation. saltboot used different path.
Indeed cobbler should have both distro and profile setup. Distro provides kernel, initrd. Profile provides autoyast or kickstart (or in case of containerized Uyuni, saltboot also uses cobbler underneath) |
After running configure-tftpsync.sh to set up proxies in the cobbler configuration, running cobbler sync fails to replicate the tftp data to the proxies.
While it says the task completes
the tftpd data isn't visible in the proxies (using podman exec to look at the tftp directory in the uyuni-proxy-tftpd container) and the cobbler log is full of error messages like
[ThreadPoolExecutor-3_12] 2024-11-01T11:38:12 - INFO | Push failed
[ThreadPoolExecutor-3_39] 2024-11-01T11:38:12 - INFO | Push failed
[Thread-4998] 2024-11-01T11:38:12 - ERROR | uploading to proxy myuyproxy1.mydomain failed: HTTP Error 403: Forbidden
[Thread-4963] 2024-11-01T11:38:12 - ERROR | uploading to proxy myuyproxy2.mydomain failed: HTTP Error 403: Forbidden
The text was updated successfully, but these errors were encountered: