2013-03-04 25 views

cevap

15

Sarıcı yemek kitabı oluştururken, öznitelikleri geçersiz kılmak yaygındır. Varsayalım

, böyle my_web_server/recipes/default.rb ile my_web_server yemek kitabı:

include_recipe "apache2" 

Ve apache2 yemek kitabı default_site_enabled özelliğini geçersiz istiyoruz. Ardından, dosya my_web_server/attributes/default.rb gibi görünmelidir:

override['apache']['default_site_enabled'] = true 

Ve benzeri my_web_server/metadata.rb yılında bağımlılıkları belirtmek unutmayın: kılma niteliklerini için

depends "apache2" 
+1

Bu yalnızca Chef sunucusu için çalışıyor mu? Chef 12.0.3 kullanarak şef solo için çalışmıyorum. – Noz

+0

Bunun için çok teşekkür ederim, chef_nginx yemek kitabındaki özellikleri geçersiz kılacak bazı benzer bilgilere ihtiyaç duyuyordu. – WhyAyala

5

Sık sık rolleri kullanın.

Benim app'üm üzerine yüklemek için apache ve yolcu yüklemek/yapılandırmak için bir tane benim sweet_rails_app için iki tane yemek kitabı var mı. Benim sweet_rails_app_cookbook olarak

Olabilirim: ya yemek kitabı varsayılan düzeyinde belirlenen her iki yemek kitaplarında

# coding: UTF-8 
# Cookbook Name:: sweet_rails_app 
# Recipe:: default 
include_recipe 'apache_passenger_cookbook::default' 
... # recipe code 

Tüm özelliklerini.

# coding: UTF-8 
name 'sweet_rails_app' 
description 'Deploys Sweet Rails App' 

run_list "recipe[sweet_rails_app_cookbook]" 

base_dir = '/opt/sweet_rails_app' 

override_attributes(
    sweet_rails_app: { 
    base_dir: base_dir, 
    ... # more override attributes 
    }, 
    apache_passenger: { 
    document_root: base_dir 
    } 
) 

Ardından, düğümün run_list dosyasına eklemem gereken tek şey budur. Bu aynı zamanda iki yemek kitabının yürütme sırasını kontrol etmenin ek avantajına da sahiptir.