Ich versuche meine erste benutzerdefinierte Koch-Ressource zu schreiben. Allerdings kann ich auf Eigenschaften in einige andere eingebettete Ressourcen nicht zugreifen.Eingebettete Ressource kann nicht auf die Chef-Eigenschaft in der benutzerdefinierten Ressource zugreifen?
ich geschaffen habe, die folgende Ressource
property :template_shortname, String
action :setup do
node.set['apache']['version'] = '2.4'
node.set['apache']['package'] = 'apache2'
include_recipe "apache2::default"
print "the shortname is " + template_shortname
web_app "sample_app" do
server_name "server.com"
server_aliases []
docroot "/www-data"
template "prefix " + template_shortname
end
end
jedoch, wenn diese Ausführung erhalte ich:
Von Debug-Protokoll
The shortname is: server
Aber die Parameter für template_shortname enthält ein leeres Array. So verlässt sie mit:
TypeError
---------
no implicit conversion of Array into String
Cookbook Trace:
---------------
/tmp/kitchen/cache/cookbooks/phpapp/resources/setup.rb:21:in `+'
/tmp/kitchen/cache/cookbooks/phpapp/resources/setup.rb:21:in `block (2 levels) in class_from_file'
/tmp/kitchen/cache/cookbooks/phpapp/resources/setup.rb:17:in `block in class_from_file'
Ich bin mit Koch-dk Chef Development Kit Version: 1.1.16 Koch-Client-Version: 12.17.44 Auslieferungsversion: Master (83358fb62c0f711c70ad5a81030a6cae4017f103) berks Version: 5.2. 0 Küche Version: 1.14.2
'Vorlage" Präfix # {template_shortname} "' benutze String-Interpolation, keine Addition – Tensibai
Und wahrscheinlich 'new_resource.template_shortname' aus dem [doc] (https://docs.chef.io/custom_resources.html#new-resource -Eigentum). Alles in allem klingt das Einstellen von Attributen wie diesem und das Aufrufen von include_recipe mit einer Aktion brüchig und wird Sie wahrscheinlich bald beißen. Das sollte in deiner Phpapp-Kochbuchattributdatei und Rezept sein, alles in allem bekomme ich nicht, was du hier zu tun versuchst. – Tensibai
Sry Ich hätte erwähnen sollen, dass new_resource ebenfalls leer ist. Wie ich diesen Blogpost http://blog.backslasher.net/chef-custom-resources.html verstehe, wird es nicht mehr benötigt. Wenn ich den Chef Doc richtig lese, sollte es nur bei Namenskonflikten benötigt werden. – crasu