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?

War es hilfreich?

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 konvertiert x86_64 Zu amd64
  • 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top