2016-06-08 17 views
0

Ich getestet mit einfachen PowerShell-Skript mkdir C:\tempdir Wenn ich es als UserData zum Beispiel von Amazon Bild gestartet, alles funktioniert gut. Wenn ich eine Instanz mit angegebenen UserData starte und ein Image dieser Instanz anlege, wird UserData nicht für Instanzen ausgeführt, die aus meinem benutzerdefinierten Image erstellt wurden. Interessant ist, dass "C:\Program Files\Amazon\Ec2ConfigService\Scripts\UserScript.ps1" UserData des ersten Starts enthält (bevor das Image erstellt wurde), obwohl es Daten enthalten sollte, die beim letzten Start angegeben wurden. Interessanter, sogar UserScript.ps1 ist vorhanden, es wird nicht ausgeführt (es sollte Textdatei erstellen, aber Textdatei ist nicht vorhanden). Hier ist Userdata von der zweiten StartAWS - UserData wird nicht zum Beispiel von benutzerdefinierten Bild erstellt

<powershell> 
    mkdir C:\tempdir 
</powershell> 

Antwort

1

Benutzerdatenskripten nur einmal ausgeführt, wenn die Instanz gestartet wird (erstellt nicht gestartet). Sie sind dann für die Instanz deaktiviert. Wenn Sie also eine AMI von dieser Instanz abrufen und eine neue starten, wurden die Benutzerdaten bereits deaktiviert.

Userdata aktivieren

es wieder ermöglichen ausgeführt, wenn Sie eine neue von einer AMI starten Sie Sie erstellt wurden, müssen durch Überprüfung der Userdata Feld Benutzerdaten Unterstützung wieder an der EC2ConfigService Einstellungen Dienstprogramm drehen (vor dem Grabbing AMI).

Persist Userdata Aktivieren

danach Nun, wenn Sie wieder die Instanz neu starten dann die Userdata laufen und wieder selbst deaktivieren. Um diese Funktionalität ebenfalls zu deaktivieren, müssen Sie <persist>true</persist> zu den UserData der Instanz hinzufügen, wodurch das Kontrollkästchen im gleichen Zustand bleibt (wenn Sie es einschalten).

Weitere Informationen:

+0

Wenn EC2ConfigService Einstellungen Dienstprogramm ausgeführt wird, zeigt es „Userdata nach SysPrep standardmäßig aktiviert wird). Ich versuchte t o Aktivieren Sie das Kontrollkästchen Benutzer-Dtaa, dann führen Sie SysPrep (zweites Register) aus und stellen Sie ein Bild von der AWS-Webkonsole her. -Dies funktioniert nicht Ich wiederholte das Verfahren, aber einfach herunterfahren Instanz und erstellte Bild Hat nicht funktioniert.Option zu aktivieren es permanetly ist nicht für mein Szenario geeignet. –

+0

Ich verwende SysPrep nicht, da ich nicht möchte, dass es in meinem Fall läuft. Ich stelle nur sicher, dass das Kontrollkästchen aktiviert ist, die Instanz herunterfahren, sie abbilden und eine neue starten. In meinem Setup hat die alte Instanz nur ' true' in den Benutzerdaten und wenn ich die neue starte, benutze ich ' ... ' um das Skript nur beim ersten Booten des neuen Images auszuführen. – eirc

+0

Als ich ' true 'zu base instance hinzufügte (ich benutze Image), hat UserData funktioniert. Ich bin immer noch verwirrt, warum es nicht funktioniert hat, wenn ich das entsprechende Kontrollkästchen ankreuze. Trotzdem Problem gelöst. Danke. –