Şef-istemci bir yemek kitabını sunucudan güncellemiyor


9

(Apache2 için) bir şef yemek kitabı var. Bir düğüm üzerinde çalışmaz. Bu yüzden onu düzeltmeye ve güncellemeye çalışıyorum, ancak düğüm yeni sürümü indirmiyor gibi görünüyor. Her şeyi yerel sunucumdan şef sunucusuna yükleyebildim knife upload ., bu başarılı oldu ve değiştirdiğim apache2 yemek kitabı bitlerini yüklediğini yazdırdı.

Düğümde el ile çalıştırdığımda (kök olarak) chef-client, sunucuyla bağlantı kurduğunu, çalışma listesini aldığını vb. Görebiliyorum. Ancak, reçete dosyaları /var/cache/chef/cookbooks/apache2eski dosyalar. Ve tarif başarısız oluyor (çünkü yaptığım değişiklikler yok).

Şef istemcisini apache2 yemek kitabının yeni güncellenmiş sürümünü kullanmak için düğümden nasıl alabilirim? Yemek kitabındaki sürüm numarasını çarpmam gerekiyor mu (bunu yapmadım)?

chef-client -l debug çıktı:

[2015-01-30T10:51:31+01:00] DEBUG: Synchronizing cookbook apache2
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_ldap.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_xsendfile.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_auth_openid.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_setenvif.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_python.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_authz_host.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_proxy_ajp.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_expires.rb, as the cache is up to date.
(lots of this for all files)

Şef için yeniyim, bu yüzden acemi bir hata yapmış olabilirim.


Chef-server web arayüzüne gidin ve yemek kitabındaki değişikliklerin olup olmadığını kontrol edin.
Draco Ater

1
Koştuğunuzdan emin olun knife cookbook upload <cookbook_name>. Bu sorunu çözmezse, sürümü knife cookbook list <cookbook_name>düzgün bir şekilde yüklediğinizden emin olmak için sürümü çarpmayı ve ardından çalıştırmayı deneyin . Alternatif olarak, knife cookbook downloadsunucunun doğru kod olduğunu düşündüğünü aşağı çekmek için (başka bir dizinde) çalıştırın .
Tejay Cardon

Yanıtlar:


6

Sana yardım edebileceğini düşünebileceğim birkaç şey var.

  1. Yüklediğiniz yemek kitabı sürümünün en son sürüm olduğunu doğrulayın

    Yemek kitabı sürümüyle ilgili sık karşılaşılan bir sorun, yemek kitabı sürüm 1.0.0'ı yerel olarak değiştirip yüklemeniz olabilir, ancak Şef Sunucusu'nun önceden yüklenmiş yemek kitabı sürümü 1.0.1 olmasıdır. Bu durumda, Chef Clients genellikle (aksi belirtilmedikçe) en son sürümü alır ve değişiklikleriniz hiçbir zaman yerel önbellekle senkronize edilmez.

    Chef Server'daki yemek kitabının tüm güncel sürümlerini şuradan görebilirsiniz: knife cookbook show apache2

    Bunun bir çözümü, bahsettiğiniz çözümdür - sürüm numaranızı Chef Server'da olandan daha fazla artırın, yani 1.0.2 ve yükleyin.

    Başka bir yöntem de Chef Server'dan diğer apache2 yemek kitaplarını kaldırmak ve istediğinizi yeniden yüklemek. Bunun herhangi bir sürüm numarası güncellemesine ihtiyacı yoktur ve sonuç olarak Chef Server'ın tek bir apache2 yemek kitabı olacaktır.

  2. Değişikliklerinizin gerçekten Chef Server'da yapıldığını doğrulayın

    knife cookbook show apache2 <cookbook version> recipes default.rb Sürümü, yolu ve dosya adını değiştir'i kullanma - örneğin foo.erb adlı bir şablonu görüntülemek istiyorsanız:knife cookbook show apache2 0.1.0 templates foo.erb

    Bu komut, Chef Server'dan dosya ister ve çıktıyı terminalinizde görüntüler. Bu, yaptığınız değişikliklerin karşıya yüklendiğini belirlemenin basit bir yoludur knife cookbook upload.

Bunların ötesinde, bu yardımcı olmazsa, knifesürüm, chef-serversürüm, chef-clientsürüm ve hata ayıklama günlüğünün ayrıntılarını eklemek knife cookbook upload apache2 -VVdaha fazla hata ayıklamada yardımcı olacaktır.


1
Bu cevap için çok teşekkür ederim ... bu, üretim ortamımızda, ortamlarımızda / production.rb'de değil, berkshelf tarafından belirlenen yemek kitabı kısıtlamaları olduğunu görmemi sağladı! Bunu yapabileceğini bile bilmiyordum. Neyse, bizim production.rb ortamını yeniden yükledikten sonra, yeni bir şef çalıştırmak son uygulama yemek kitabı aldı.
Colin Curtin

2

Önce sunucudaki yemek kitaplarının tüm sürümlerinde hata ayıklayın ve ardından istemcinin hangi yemek kitabı sürümünü indirdiğini kontrol edin. eskiyse, sunucunun güncellenmiş bir sürümü olup olmadığını kontrol edin. eğer evet ise, şef sunucu kullanıcı arayüzü gidin ve env kontrol edin. yemek kitapları kısıtlamasının belirtildiği bir ortam ayarlamış olabilirsiniz. Lütfen sürümü buradan güncelleyin, tekrar çalışmaya başlayacaktır.


1

Bunun bir başka nedeni, yemek kitabının tüm bağımlılıklarının şef sunucusunda mevcut olmaması olabilir. Ben şimdi knife cookbooks listbununla karşılaştım ve yemek kitabımın yeni sürümü görünüyordu ama müvekkilim yeni sürümü kullanmıyordu. Bazı hata ayıklamalarından sonra, Berkshelf'in veya bıçağın yemek kitabım için yeni bağımlılığı yüklemediğini keşfettim. Bunu yükledikten sonra istemci daha yeni sürümü kullanmaya başladı.


Bıçak yemek kitabı yüklemesini <cookbook_name> yüklediğinizden emin olun
Net Runner
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.