حقائق النظام الافتراضي للدمية والواقع
-
12-12-2019 - |
سؤال
ما زلت جديدًا تمامًا في التعامل مع الدمى ولكني أكتب بعض عمليات النشر معها.
لقد واجهت مشكلة حيث لم أتمكن من الحصول على الارتباطات الرمزية بشكل صحيح لأنه لسبب ما كنت أواجه عدم تطابق بين مجلدات النظام الحالية ومتغير الدمية ${architecture}.
أحتاج إلى الكود التالي للعمل على النحو التالي:
على Ubuntu 12.04 x86_64 يجب أن أحصل على رابط منه /usr/lib/libz.so
ل /usr/lib/x86_64-linux-gnu/libz.so
ومع ذلك، فقد تم تشجيعي على ذلك /usr/lib/amd64-linux-gnu/libz.so
الذي لا يوجد إنشاء من رابط معطل.
file {"/usr/lib/libz.so":
ensure => link,
target => "/usr/lib/${architecture}-linux-gnu/libz.so",
}
يستخدم Puppet Facter للحصول على حقائق النظام، وبتشغيل Facter في سطر الأوامر الخاص بي، أحصل على ما يلي:
root@somehost:/root# facter
architecture => amd64
facterversion => 1.6.5
hardwareisa => x86_64
(....)
جري lscpu
انا حصلت:
root@tsomehost:/root# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
(....)
سؤالي هو: من أين يستمد Facter حقائقه؟
المحلول
تتضمن وثائق Facter الآن مستندات حول كيف يتم حل الحقائق الأساسية.
- بنيان يستخدم نموذج الأجهزة، الذي يستدعي
uname -m
ثم على دبيان المتحولينx86_64
لamd64
- com.hardwareisa المكالمات
uname -p
$hardwaremodel
قد يكون ما تريده هنا، ولكن أعتقد أنه سيعيد x86_64 إذا كنت تستخدم نواة 64 بت مع مساحة مستخدم 32 بت، وهو ما قد لا يكون صحيحًا لحالة الاستخدام الخاصة بك.
نصائح أخرى
ما هي نسختك من Puppet and Facter؟
ربما لديك إصدار <1.6.5 Facter وبالتالي لديك هذا الخطأ: http://projects.puppetlabs.com/issues/11511
حاول الترقية إذا استطعت.