Problem:
on the old and new hosts page, each node is aligned to a OS Version that is also used in provisioning, if you add a new node to foreman with a new OS, once the puppet run has happened, not only will the OS be listed in the host page, but it will also be selectable as a provisioning OS.
I’ve recently been doing some work with ubuntu 24.04 and noticed that ubuntu 24.04.3 (and .2) still show up in the host page and operating system page as 24.04.1 (same is true in the old interface)
![]()
when the OS is 24.04.3
root@mcp:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.3 LTS
Release: 24.04
Codename: noble
I’ve noticed this for a number of years and had vaugue discussions about it in the past, but as someone who’s not really a user of ubuntu and it only appears to be impacting ubuntu I’ve never followed up.
I always thought this was pulled from a puppet fact, but that’s not true
root@mcp:~# facter os
{
architecture => “aarch64”,
distro => {
codename => “noble”,
description => “Ubuntu 24.04.3 LTS”,
id => “Ubuntu”,
release => {
full => “24.04”,
major => “24.04”
}
},
family => “Debian”,
hardware => “aarch64”,
name => “Ubuntu”,
release => {
full => “24.04”,
major => “24.04”
},
selinux => {
enabled => false
}
}
and since foreman moved away to depending on puppet, that can’t be true for ansible/salt/whatever.
so something must be assessing the OS within puppet/ansible/whatever and writing it to a foreman parameter that is used - but what.
if I manually change it to 24.04.3 once the puppet run happens it reverts, so I know puppet can influence this parameter.
Where is this being picked up from and why does it only impact ubuntu ?