2017-05-18 4 views
0

Ich muss ein Produkt mithilfe von Puppet unter Windows installieren. Ich verwende exec recourceLeerzeichen in Dateipfaden für Marionette unter Windows

exec { 'install': 
      command => 'C:\\windows\system32\cmd.exe /c "c:\\Program Files\\zabbix_agentd_64.exe --config c:\\Program Files\\zabbix_agentd.conf --install"', 
      } 

Syntax in Ordnung ist, aber ich bekomme

'c:/Program' wird nicht als interner oder externer Befehl erkannt

Ich habe auch versucht command => 'C:\\windows\system32\cmd.exe /c "c:\Program Files\zabbix_agentd_64.exe --config c:\Program Files\zabbix_agentd.conf --install"' und command => 'C:\\windows\system32\cmd.exe /c "c:\\Program/Files\\zabbix_agentd_64.exe --config c:\\Program/Files\\zabbix_agentd.conf --install"' aber es sagt Syntaxfehler (zu Recht in der Tat). Irgendwelche Ideen?

Antwort

2

Puppet (wahrscheinlich der Ruby unterhalb, eigentlich) teilt Ihre Befehlszeile in Wörter ohne Rücksicht auf die internen Anführungszeichen. Ich glaube nicht, dass Sie etwas dagegen tun können, aber es gibt . Sie könnten in Erwägung ziehen, dieses Thema zu kommentieren. Es sollte möglich sein, den Befehl an die Exec in Word-Split-Form als Array anzugeben, die eine Lösung für Ihr Problem bieten würde.

Ich sehe zwei mögliche Alternativen es jetzt zum Laufen zu bringen:

  • den 8.3-Namen für das Verzeichnis verwenden (siehe how to get DOS path instead of Windows path). Das kann schwierig sein, weil ich denke, dass der 8.3-Pfad nicht allein durch den Dateinamen bestimmt wird - er kann durch die Namen von Geschwisterdateien und -verzeichnissen beeinflusst werden.

  • Geben Sie einen PFAD für den Exec an, über den die gewünschte ausführbare Datei gefunden werden kann, und führen Sie sie unter ihrem einfachen Namen aus.

+0

Vielen Dank für Ihre Wiederholung John. DOS-Pfad funktioniert, aber die Angabe eines Pfades für exec nicht, ich habe es schon einmal versucht. Ich schreibe Manifeste in Puppet unter Windows Ich habe eine Menge Bugs entdeckt, das ist ein sehr zerlumptes Tool auf diesem OS ... Interessant ist, dass Windows-Pfad für Verzeichnisse mit Leerzeichen in zB verwendet. Datei- oder Serviceressourcen funktionieren einwandfrei. – mila002

Verwandte Themen