Ich habe versucht, die Antwort in den Chef-Docs und über Google zu finden, aber ich konnte mir nichts einfallen lassen. Ich bin (noch) kein Ruby-Typ, also könnte die Antwort darauf sein, dass ich das Problem mit "gerade genug Rubin für Chef" angehen würde. Folgendes möchte ich tun: In meiner deploy
-Ressource möchte ich im Attribut before_migrate
eine Ressource in meinem aktuellen Rezept ausführen. Was ich gerade mache, ist, einfach die Ressource in den Block selbst zu stopfen, aber ich weiß, dass es einen besseren Weg dafür geben muss.
Was ich anstrebe, ist etwas wie
%Vor%Ich kann diesen Vorlagencode also wiederverwenden. Danke!
Dank der großartigen Jungs im #chef IRC-Kanal habe ich mein Problem gelöst. Auf die Benachrichtigungsressource muss direkt mit
zugegriffen werden Chef::Resource::Notification.new("template[#{app_root}/#{applet_name}/local_settings.py", :create)
Dies teilt der Ressource template
mit, dass sie die Aktion :create
ausführt.
Sie können die Ressource außerhalb der Ressource "deploy" mit einer Aktion von nothing angeben und dann in der * before_migrate * Folgendes tun:
%Vor%Auf diese Weise können Sie es benachrichtigen, wenn Sie es brauchen.