Nachdem cloud-init beim ersten Start einer EC2-Instanz ein Benutzerdatenskript ausgeführt hat , wird vermutlich eine Statusdatei geschrieben, damit cloud-init das Skript bei nachfolgenden Neustarts nicht erneut ausführt. Es gibt Fälle, in denen ich diese Statusdatei löschen möchte, damit das Benutzerdatenskript erneut ausgeführt wird. Wo ist es?
amazon-ec2
cloud-init
Mike
quelle
quelle
curl
zum Abrufen der aktuellen Instanz-ID an den Metadatendienst ist unnötig, da/var/lib/cloud/instance
unter bereits ein Symlink zur aktuellen Instanz steht/var/lib/cloud/instances
. :-)Sie können Ihr Skript in /etc/rc.local ablegen, wodurch das Skript bei jedem Neustart ausgeführt wird.
quelle
/etc/rc.local
hat nichts mit EC2 Benutzerdaten zu tun.Sie können Ihre Benutzerdaten auch so konfigurieren, dass sie bei jedem Start erneut ausgeführt werden, anstatt die Statusdatei zu entfernen. Sie müssen
cloud_final_modules
in Ihrem Benutzerdatenskript verwenden, um das Benutzerdatenskript erneut auszuführen, und dafür müssen Sie uderdata anpassen, um mehrere Dateien in Benutzerdaten zu haben. Beispiel für eine Userdaten-Datei:Dadurch wird das Benutzerdatenskript beim letzten Schritt jedes Startvorgangs ausgeführt. Hier muss nur eine einzelne Zeile
bin/echo "Hello World" >> /tmp/userdata-test.txt
ausgeführt werden. Ersetzen Sie diese durch Ihr Shell-Skript, das jedes Mal ausgeführt werden muss, wenn eine Maschine gestartet wird.quelle