Ich verwende den Opscode nginx cookbook zum Konfigurieren des Nginx-Servers auf meinen Knoten. Das nginx Kochbuch hat einige Standardattribute, die ich in meiner Rolle überschreiben möchte ("web_server").Chef: Wie überschreibe ich Standardattribute in Rollen?
Das sind die Attribute Ich mag würde außer Kraft zu setzen:
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
In meinen Rollen/web_server.rb Datei, die ich so etwas wie diese:
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 }
}
Wenn jedoch die Chef- laufen Client Das Nginx-Rezept ignoriert meine Überschreibungen und verwendet die Standardeinstellungen.
Was mache ich hier falsch?
Danke!
Haben Sie vergessen, Rolle auf Chef-Server hochzuladen (wenn Sie es verwenden)? –
Führen Sie einen Chef-Client mit oder ohne eine benutzerdefinierte Ausführungsliste (-o) aus? Heute habe ich gelernt (nach 2-3 Stunden Debugging), dass Attribute, die in der Rolle/dem Knoten gesetzt sind, nicht verwendet werden, wenn die Laufliste überschrieben wird. –
Ich habe das gleiche Problem festgestellt:/Ich bin mir ziemlich sicher, dass ich override_attributes in der Rolle gesetzt habe, und ich verwende nur den Standard in meiner Attributdatei. Ich wette, das ist eine Art Kochwanze oder was? –