سؤال

لدي كتاب طبخ للشيف يقوم بتثبيت nginx وتثبيت ملف nginx.conf مخصص.إنه في الأساس نفس كتاب الطبخ الموجود على Opscode، ويستخدم ملف Cookbook_file لتثبيت الملف.

إذا قمت بإجراء تغيير على ملف conf، فأعد تشغيل كتاب الطبخ باستخدام Chef، ولم يتم تحديث ملف التكوين.يبدو هذا خطأً - هل أفعل شيئًا خاطئًا؟

هل كانت مفيدة؟

المحلول

وفي الشيف أن ترتيب الأوامر في الوصفة هو ترتيب التنفيذ.إذا احتفظت بـ template ل nginx.conf ويأتي بعد الخاص بك cookbook_file الأمر، فإن القالب الذي تم إنشاؤه سوف يحل محل الملف الخاص بك.

على سبيل المثال

# cookbook file
cookbook_file "#{node[:nginx][:dir]}/nginx.conf" do
  source "my_nginx.conf"
  mode 0644
  owner "root"
  group "root"
end

# template
template "nginx.conf" do
  path "#{node[:nginx][:dir]}/nginx.conf"
  source "nginx.conf.erb"
  owner "root"
  group "root"
  mode 0644
  notifies :reload, "service[nginx]"
end

ال template سوف الكتابة فوق الملف الذي وضعته cookbook_file.

نصائح أخرى

في الاختبار وجدت أنه إذا كان لديك :create_if_missing اضبطه ولن يقوم بتحديث الملف إذا تغيرت محتوياته.تعيين :create وسوف.

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