2014-07-16 14 views
5

Mit dem Powershell_script-Provider von Chef Wie würde ich eine Datei referenzieren, die auf dem Chefserver gespeichert ist, anstatt den Code in der gleichen Datei definiert zu haben? Grundsätzlich, wie kann ich eine .ps1 auf dem Server von einem Chef-Client aufrufen?Chef Powershell Run von Datei

Antwort

6

können Sie rufen unsigned Powershell-Skripts direkt in powershell_script, solange your execution policy allows it, der Chef standardmäßig der Fall ist.

powershell_script "run some script" do 
    code "c:/something/script.ps1" 
end 

Wenn Sie Chef will auch das Skript zu implementieren, können Sie es tun aus dem /files Abschnitt des Kochbuch mit cookbook_file.

+0

Ah, okay. Ich war ein bisschen verwirrt von all den Beispielen, die nur 'Code' für tatsächlichen Code verwenden, aber ich denke, da es nur einen Powershell-Befehl ausführt, funktioniert ein Skriptname richtig. Aber wenn ich das benutze, müsste ich das Skript zuerst auf die Maschine setzen und später manuell säubern. Nicht viel Ärger, aber es wäre schön gewesen, ein Remote-Skript ausführen zu können und den Chef mit der temporären Erstellung für mich fertig zu machen. – Derongan

+2

Nun, das DSL ist doch nur Ruby-Code. Sie können die Zeichenfolge für 'code' von überall in den Client ziehen. Sie könnten 'File.read (" script.ps1 ")' aus dem lokalen Cookbook-Cache. Sogar 'Net :: HTTP.get ('beispiel.com', 'script.ps1')' – Matt

+0

Ich habe nicht viel Vertrautheit mit Ruby, aber das scheint im Grunde genau das zu tun, was ich will! Vielen Dank! – Derongan

0

Für mehrere Zeilen Code, vergessen Sie nicht, \ n am Ende jeder Zeile in Powershell_script Ressource Code-Parameter hinzufügen.