2016-08-05 23 views
0

Der Benutzer Daten Abschnitt in HOT ist, Shell-Befehl auf neu erstellte Nova-Instanz ausführen, aber ich möchte eine lokale ausführen (die Maschine, Heat-Stack-Create-Befehl) Shell-Befehl ausführen, wenn "Heat-Stack-erstellen" -Befehl.Wie führt man einen lokalen Shell-Befehl in der OpenStack HOT Template-Datei aus?

Aber nachdem ich das OpenStack HOT doc gelesen habe, fand ich keine Syntax, um dies zu unterstützen.

+0

Sie können es erreichen, indem Sie Ihr eigenes Heat-Plugin haben und es aufrufen, indem Sie etwas wie OS :: Gemfield :: RunShellCmd aufrufen. –

+0

Dies ist ein Problem, wenn die HOT-Vorlagendatei aufgrund eines fehlenden Plugins auf einem anderen OpenStack-Host bereitgestellt wird. – gemfield

Antwort

1

Es gibt keine Syntax, um dies zu unterstützen. Heizvorlagen werden auf dem Server verarbeitet. Es gibt auch keine Garantie, dass das einreichende System sogar eine Standard-Unix-Shell hat (Hitzeschablonen können über einen Webbrowser oder mit anderen Tools als der heat CLI eingereicht werden).

Wenn für den Bereitstellungsworkflow einige lokale Aktionen mit der Heat-Bereitstellung koordiniert werden müssen, verwenden Sie am besten ein anderes Tool (Ansible? Ein Shellskript?), Um den Arbeitsablauf zu automatisieren.

Eine Alternative wäre, dass Heat (oder Ihre VMs) Ihr lokales System mit einer Art Web-Hook signalisieren und einen lokal laufenden Web-Service haben, der das Signal empfängt und die entsprechende Aktion ausführt.