سؤال

ما زلت جديدًا تمامًا في التعامل مع الدمى ولكني أكتب بعض عمليات النشر معها.

لقد واجهت مشكلة حيث لم أتمكن من الحصول على الارتباطات الرمزية بشكل صحيح لأنه لسبب ما كنت أواجه عدم تطابق بين مجلدات النظام الحالية ومتغير الدمية ${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

حاول الترقية إذا استطعت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top