Legacy Facts…
Upgrade auf Buster…und wieder die selbe Scheisse mit puppet wie immer. Diesmal sind es die “Legacy Facts” wie $::operatingsystem oder $::lsbdistrelease. Die zeigt facter nur noch an, wenn mit dem Flag –show-legacy ausgeführt. …und dann ist os.release.major ein String ?! wtf
Aus
if $::operatingsystem == 'Debian' and $::lsbdistrelease < '9.0'
wird nun
$major_release = $::facts['os']['release']['major'] $operatingsystem = $::facts['os']['family'] if $operatingsystem == 'Debian' and Integer($major_release) < 9 {
Und nein, wenn man keine Variabeln draus macht, klappt das nicht mit der Umwandlung zu einem Integer…
Super, ist das nicht in vielen Modulen verbaut. Und natürlich ist das bei alten Versionen natürlich nicht mehr kompatibel. Geile Sache, argh..
Abgefragt wird das ganze nun auch ein bisschen anders, anstatt einfach zu greppen (was noch geht, aber wegen der Hashes weniger übersichtlich ist bzw. gewisse Sachen nicht anzeigt…). jetzt fragt man das manuell etwa so ab:
facter os.release.major
# facter os { architecture => "amd64", distro => { codename => "buster", description => "Debian GNU/Linux 10 (buster)", id => "Debian", release => { full => "10", major => "10" } }, family => "Debian", hardware => "x86_64", name => "Debian", release => { full => "10.3", major => "10", minor => "3" }, selinux => { enabled => false } }
Naja, nicht so tragisch, aber es nervt trotzdem bei jedem Upgrade, dass an grosser Teil vom Aufwand drauf geht, weil beim Configmanagement wieder alles anders wurde. Echt mal an der Zeit, das Ansible-Buch zu lesen…vielleicht ist es da ja besser.