Fakten zum Standardsystem von Puppet und Factor
-
12-12-2019 - |
Frage
Ich bin immer noch ein ziemlicher Neuling im Bereich Puppet, schreibe jedoch einige Deployments damit.
Ich bin auf ein Problem gestoßen, bei dem ich die Symlinks nicht richtig erstellen konnte, weil aus irgendeinem Grund eine Nichtübereinstimmung zwischen vorhandenen Systemordnern und der Puppet-Variable ${architecture} festgestellt wurde.
Ich benötige den folgenden Code, um wie folgt zu funktionieren:
Unter Ubuntu 12.04 x86_64 sollte ich einen Link von bekommen /usr/lib/libz.so
Zu /usr/lib/x86_64-linux-gnu/libz.so
Ich werde es jedoch langsam versuchen /usr/lib/amd64-linux-gnu/libz.so
was es nicht gibt, als einen defekten Link.
file {"/usr/lib/libz.so":
ensure => link,
target => "/usr/lib/${architecture}-linux-gnu/libz.so",
}
Puppet verwendet Factor, um Systemfakten abzurufen, und wenn ich facter auf meiner Befehlszeile ausführe, erhalte ich Folgendes:
root@somehost:/root# facter
architecture => amd64
facterversion => 1.6.5
hardwareisa => x86_64
(....)
Läuft lscpu
Ich bekomme:
root@tsomehost:/root# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
(....)
Meine Frage ist: Woher bezieht Factor seine Fakten?
Lösung
Die Facter-Dokumentation enthält jetzt Dokumente zu wie Kernsachverhalte geklärt werden.
- die Architektur verwendet Hardwaremodel, das aufruft
uname -m
und dann auf Debian konvertiertx86_64
Zuamd64
- Hardwareisa Anrufe
uname -p
$hardwaremodel
könnte das sein, was Sie hier wollen, aber ich denke, es wird x86_64 zurückgeben, wenn Sie einen 64-Bit-Kernel mit einem 32-Bit-Benutzerland verwendet haben, was für Ihren Anwendungsfall wahrscheinlich nicht korrekt ist.
Andere Tipps
Was ist Ihre Version von Puppet and Factor?
Möglicherweise haben Sie eine Factor-Version < 1.6.5 und daher diesen Fehler: http://projects.puppetlabs.com/issues/11511
Versuchen Sie, wenn möglich, ein Upgrade durchzuführen.