Sto usando l'opcode nginx cookbook per configurare il server nginx sui miei nodi. Il libro di cucina nginx ha alcuni attributi predefiniti che vorrei sovrascrivere nel mio ruolo ("web_server").Chef: come sovrascrivere gli attributi predefiniti nei ruoli?
Questi sono gli attributi che vorrei ignorare:
default['nginx']['version'] = "1.2.2" # in cookbooks/nginx/attributes/default.rb
default['nginx']['source']['prefix'] = "/opt/nginx-#{node['nginx']['version']}" # in cookbooks/nginx/attributes/source.rb
Nei miei ruoli/lima web_server.rb ho qualcosa di simile:
name "web_server"
description "Setup a web server"
run_list "role[base]", "recipe[nginx]"
override_attributes 'nginx' => {
'install_method' => "source",
'version' => "1.2.3",
'source' => { "prefix" => "/opt/nginx", "checksum" => nil }
}
Tuttavia, quando si esegue la chef- client la ricetta nginx ignora i miei override e usa quelli predefiniti.
Cosa sto facendo di sbagliato qui?
Grazie!
Non hai dimenticato di caricare il ruolo su chef-server (se lo stai utilizzando)? –
Stai utilizzando lo chef-cliente con o senza un elenco di esecuzione personalizzato (-o)? Oggi ho imparato (dopo 2-3 ore di debug) che gli attributi impostati nel ruolo/nodo non vengono utilizzati quando si esegue l'override della lista di esecuzione. –
Ho riscontrato lo stesso problema:/Sono abbastanza sicuro di aver impostato override_attributes nel ruolo, e uso solo il default nel mio file degli attributi. Scommetto che questa è una specie di bug dello chef o cosa. –