سؤال
لدي كتاب طبخ للشيف يقوم بتثبيت 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
وسوف.
لا تنتمي إلى StackOverflow