2014-12-17 14 views
8

Oluşturmak için bir şablon ve xml belgesi kullanan bir şef tarifi var. Bu belgenin dosya sistemi üzerindeki konumu önemli değildir; Konumun sadece dosyayı okuyacak ve bir uygulamayı yapılandırmak için kullanacak bir komut satırı aracına verilmesi gerekir. Xml dosyasının, komutun yürütülmesinin ötesinde kalması gerekmez. Bu nedenle, dosyanın bir platform nötr geçici dosyalar dizininde oluşturulması gerektiğini düşünüyorum. C: \ Windows'ta Temp veya çoğu nix makinede/TMP. Şef geçici dosyalar oluşturmanın, geçici dosya konumunu algılamanın veya başka bir amacı gerçekleştirmenin bir yolunu sağlıyor mu?Platformun doğal yolu Chef Recipe'da geçici bir dosya oluşturmak için

cevap

11

En iyi bahis: geçici veri depolamak için şef tarafından kullanılan Chef::Config['file_cache_path'] kullanın. Yorumlarınız gereğince

Uygulamayı sağlamak için bu girişi ile yine çalışacak kaynak yürütmek, buna göre dosyayı yapılandırılır: Yani: genel amaçlı orada olmak hala değer olarak template "#{Chef::Config['file_cache_path']}/myfile.xml" do

Sol yorum sonra (rephrased) sadece yürütme kaynağı çalıştırıldığında mevcut olmalı, diğer durumlar için aşağıdakiler akılda tutulmalıdır.

Şefin ardındaki en önemli fikirlerden biri, iddiasızlıktır, şef 100 kez çalışabilir ve sadece yapılması gerektiğinde işleri yapabilir.

Bu durumda, şablon bir kez oluşturulur ve özniteliklerde bir parametre değişikliği olmadığı sürece hiçbir zaman değişmez. Böyle bir durumda (ortaya çıkan dosya güncellenmelidir), şef bunu fark edecek, değiştirecek ve üzerinde tanımlanan herhangi bir bildirimle uygun şekilde davranacaktır.

+0

Evet, işe yarıyor. Idempotency ile ilgili olarak, anladığımız nokta şu andaki düşünceye uygun değildir. Yürütülmekte olan komut idempotenttir ve şablon çıktısının değişip değişmediğine bakılmaksızın çalışması önemlidir. Uygulamanın tarife göre yapılandırıldığından emin olmak ve gerçekleşmiş olabilecek manuel yapılandırma değişikliklerinin üzerine yazılmasını istiyoruz. Bu gibi manuel değişiklikler herhangi bir dosyada bir değişikliği tetiklemez. –

+0

Tamam, cevabı düzenledim, bir kısmını genel cevap için uygun bulduğum şekilde bıraktım. – Tensibai

İlgili konular