Ich habe viele Probleme in Bezug auf dasselbe gesehen. Aber wenn man vergleicht, wie schnell Testküche (https://github.com/test-kitchen/winrm-transport) Dateien für dieselbe Runlist auf einen Windows-Rechner kopiert, scheint dies ein Problem zu sein, das gelöst werden könnte. In meinem Fall dauert die Packerkopie fast eine Stunde, während die Testküche dies in weniger als 5 Minuten erledigt. Das scheint mir eine schlechte Implementierung zu sein. Ich würde gerne auf jede erdenkliche Weise helfen. Dies verlangsamt die Erstellung unserer Fenster erheblich und das Ausprobieren kleiner Änderungen verschwendet zu viele Entwicklungsstunden.
Mir ist aufgefallen, dass Packer im Koch-Solo-Bereitstellungsschritt "hängen" würde, der Kochbücher kopiert. Es sieht fast so aus, als würde alle 3 Sekunden eine Datei kopiert. Ich habe mich während dieses Vorgangs bei der EC2-Instanz angemeldet und überprüft, dass die Dateianzahl tatsächlich so langsam ansteigt.
Inhalt der relevanten Protokollausgaben:
https://gist.github.com/JCapriotti/4ecfe4a1e20fcbd879161086b0815861
Wir sind leider auf etwa 13 Kochbücher angewiesen, und dies verlängert unseren Build um etwa 45 Minuten. Nur zum Kopieren von Dateien!
Jeder, der seine WinRM-Windows-Builds beschleunigen möchte, kann dieses Problem umgehen, indem er einen Dateibereitstellungsdienst verwendet, um alle Kochbücher in einer ZIP-Datei zu kopieren, bevor der chef-solo-Bereitsteller ausgeführt wird, und den remote_cookbook_paths
angibt. So etwas hat meine Bauzeiten dramatisch beschleunigt:
"provisioners": [
{
"type": "file",
"source": "berks-cookbooks.zip",
"destination": "c:\\temp\\"
},
{
"type": "powershell",
"inline": [
"Expand-Archive -LiteralPath c:\\temp\\berks-cookbooks.zip -DestinationPath C:\\temp"
]
},
{
"type": "chef-solo",
"version": "15.3.14",
"chef_license": "accept",
"guest_os_type": "windows",
"remote_cookbook_paths": [
"c:/temp/berks-cookbooks"
],
"run_list": "{{user `ami_run_list`}}",
}
}
Es ist in Ordnung, wenn Sie winRM depriorisieren, aber dies sollte eher ein Leistungsfehler als eine Verbesserung sein. Die Backzeiten sind selbst für eine durchschnittlich große Kochbuchliste unerträglich. Unsere ist < 3 MB, aber der Upload dauert 25 Minuten!
Hilfreichster Kommentar
Jeder, der seine WinRM-Windows-Builds beschleunigen möchte, kann dieses Problem umgehen, indem er einen Dateibereitstellungsdienst verwendet, um alle Kochbücher in einer ZIP-Datei zu kopieren, bevor der chef-solo-Bereitsteller ausgeführt wird, und den
remote_cookbook_paths
angibt. So etwas hat meine Bauzeiten dramatisch beschleunigt: