Şef yemek kitapları sürümlerini kontrol altında tutmak için en iyi strateji


10

Şef yemek kitapları sürüm yönetimi hakkında fikir arıyorum. Ortamdaki belirli sürümleri sabitlediğinizi biliyorum, ancak nasıl yapılacağından emin değilim.

Üçüncü taraf topluluk kitaplarını yemek kitapları klasörüne yükleyen kütüphaneci-şefi kullanıyoruz. Bu kitaplara asla dokunmayız ve zaman zaman daha yeni sürümlere güncellemeyiz.

Topluluğa ait olanları dahil ettiğimiz özel siteye özgü yemek kitaplarımız da var ( include_recipe).

Teorik olarak, özel kitaplarımızın bağımlı olduğu topluluk kitaplarının belirli sürümlerini belirtebilir ve daha sonra ortam yapılandırmasında yemek kitabı sürümlerimizi ayarlayabiliriz, ancak sorun, bu topluluk kitaplarının belirtilen sürümleri olmayan diğer bazı kitaplara güvenebilmesidir. Ve bu derin iç içe bağımlılık devam edebilir.

Bu nedenle, şef sunucusuna yemek kitabı yüklediğinizde, eşyayı bozmayacağından, bağımlı yemek kitaplarının da değişebileceğine dair bir garanti yoktur.

Şu anda görebildiğim tek çözüm, topluluk ve özel olanlar da dahil olmak üzere çevre yapılandırmasında kullandığımız her bir yemek kitabı verisini belirtmektir. Ama sonra her yemek kitabından geçip bu sürümleri bulmam gerekiyor.

Ayrıca zaman zaman kütüphaneci-şef güncellemesi yapıyoruz ve değişen sürümleri izlemenin zorlaştığını ve zaman geldiğinde ortamdaki sürümü güncellemeyi unutmamayı hayal ediyorum.

Lütfen deneyiminizi ve en iyi uygulamalarınızı paylaşın. Eminim diğer insanlar için süper yararlı olacaktır.

Yanıtlar:


11

Chef'i ciddiyetle kullanmaya başladıktan kısa bir süre sonra da aynı sorunlara karşı çıkıyordum. Sadece bir şey aklıma geldi ancak operasyonel olarak dört şey yapmaya başladığımda. Bunların Şef topluluğundaki bazı kişiler tarafından "en iyi uygulamalar" olarak değerlendirilmeyebileceğini unutmayın. Yine de, dünyama aklıma, tekrarlanabilirliğe ve düzene böyle getirdim.

  1. Kendi tariflerinizi oluşturun. Topluluk yemek kitaplarını kullanmayı tamamen bıraktım ve kendi tariflerime göre kendi tariflerimi oluşturdum. Bu şekilde kendi bağımlılıklarımı yönetiyor ve kontrol ediyorum. Birçoğu buna karşı çıkacaktı, ama dürüst olmak gerekirse - önce Opscode ve topluluk tariflerinden bazılarını okumuş olsaydım, muhtemelen Şef'i çözümüm olarak seçmezdim. Tariflerimi basit ve çalışma şeklim doğrultusunda tutarım. Depomda kesinlikle sıfır topluluk yemek kitabım var.
  2. Yükseltmeler konusunda disiplinli olun. Bir tarifi güncellersem, her yerde çalıştığından emin olurum ve iş akışımı bozsa ve sürtünme eklese bile, her yere dağıtma zorluğundan geçiyorum. Uzun vadede bu Şef akıl sağlığının anahtarıdır. Aşırı durumlarda, test ortamına karşı üretim ortamı gibi bazı ana makineler için varyasyonlara ihtiyacım varsa, bunları yemek kitabına kodlarım. Ama benim felsefem, her yemek kitabının en son versiyonunun ihtiyaç duydukları her yere güvenle uygulanabilmesidir.
  3. Her şey için Şef Solo kullanın. Birkaç ayda bir kafamda Şef Sunucu kullanmayı tekrar denemeliyim. Topluluk baskısı gelişiyor, ancak tüm paradigma hiçbir zaman dünyama uymuyor. Ve her denediğimde, kendimi facepalm ve tekmeliyorum. Chef Server paradigması, sık sistem değişikliklerine ihtiyaç duyan uzun ömürlü sunucuları olan bir dünya için uygundur. Sistem değişikliklerini o kadar nadir yapıyorum ki, sunucularımın sürekli olarak bir şef sunucusuna güncelleme yapmasını sağlamak aptalca. Ve ev sahiplerimin sağlıklı olmasını sağlamak için çok daha iyi araçlara sahibim. İşim, yalnızca bir veya iki yapılandırma değişikliğinden kurtulabilecekleri tek kullanımlık sanal makineler dünyasında. Şimdi Şef Solo'yu sadece kullanıyorum ve aynı yemek kitaplarını onlara ihtiyaç duyan tüm ana bilgisayarlara da iterken, ev sahiplerimde değişiklikleri itiyorum.
  4. Chef çalışırken yazılımı derlemekten kaçının. Benim için en aşırı (yani aptal) durum, yeni bir kutuyu her başlattığımda ruby-1.9.3'ü kaynaktan derlemeyi içeriyordu. Ancak özel paketler oluşturmak genellikle popoda bir acı olabilir. Mükemmel araç fpm'sini keşfettiğimde, kendi rpm'leri, debs'leri ve mücevherleri paketlemem önemsiz hale geldi ve hayatımı çok daha verimli ve kolay hale getirdi.

Umarım bu birine yardımcı olur!

- GÜNCELLEME -

Yaklaşık üç yıl sonra bu ilkeler bana yardımcı oldu. Ama bir tavsiye daha ekleyeceğim ve gerçekten de şef-solo şef tercih aynı nedenlerle.

  1. YARDIMCI KURULUM KULLANIN

3

2 sorun var:

  1. farklı ortam nesnelerindeki yemek kitabı sürümlerini yönetme
  2. yönetmek tarifi versiyonunu düğüm run_list içinde.

Yemek kitabı sürümlerinin temelleri makalesiyemek kitabı sürümleri için en iyi referanstır. # 1'e göre, haklısınız çünkü farklı yapılandırma setine hizmet etmek için farklı yemek kitabı sürümlerini yönetmek zor bir iş, özellikle yemek kitabı sitesindeki yemek kitabının çoğunun bu işi iyi yapmadığı yemek kitabı bağımlılıklarıyla karıştırılıyor. Böylece yapılandırma bozulabilir. ve herhangi bir bileşenin çalışma zamanı davranışını test ederek sürümleri yönetmediyseniz, sadece kırılır. Bu nedenle, ortam nesnenizdeki sürüm numarasını belirtmeden yemek kitabı yüklemek kötü bir fikirdir. Bu nedenle, ortam nesnesindeki yemek kitabı sürümlerini yönetin ve herhangi bir yeni yemek kitabının sürümünü tanıtırken dikkatlice test edin. Genellikle SCM'deki ortam nesnesini yönetiyorum ve değiştirilen yemek kitabı mevcut diğer bileşenlerle iyi çalışana kadar otomatik iş yoluyla şef sunucusuna yüklemedim.

# 2'ye göre, bu zor bir konudur çünkü bu, gerçek tarif bağımlılığının her düğümde çalıştığı yerdir. Özetle, kritik düğümler için, düğüm / rol çalıştırma listesinde tarif sürümünü belirterek tariflerin bağımlılığını daha iyi kontrol edebilirsiniz. Bunu pek zorlamıyorum çünkü ince kum kontrolü ve test / tanıtım için daha pahalıya mal oluyor. Ancak, kritik rol / düğüm için bu kötü bir fikir değildir, ancak yapılandırma değişikliklerinde sigorta sağlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.