Bootstrapping AWS CloudFormation von Windows-Stacks - AWS CloudFormation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bootstrapping AWS CloudFormation von Windows-Stacks

In diesem Thema wird das Bootstrapping für einen Windows-Stack sowie die Fehlerbehebung für Probleme bei der Stack-Erstellung beschrieben. Wenn Sie Ihr eigenes Windows-Image für die Verwendung mit erstellen CloudFormation, finden Sie Anweisungen unter Konfiguration einer Windows-Instance mit EC2 ConfigService im Amazon EC2 Microsoft Windows-Handbuch. Sie müssen eine Windows-Instance mit EC2 einrichten, damit sie mit ConfigService den Bootstrapping-Tools funktioniert. AWS CloudFormation

Beispiel für das Bootstrapping eines Windows-Stacks

Zur Veranschaulichung untersuchen wir eine Servervorlage für eine AWS CloudFormation einzelne Instanz. SharePoint

Die Vorlage ist vollständig unter der folgenden URL verfügbar:

In diesem Beispiel wird gezeigt, wie Sie:

  • Erstellen Sie einen Benutzer und eine Sicherheitsgruppe für den Zugriff auf die Instanz. IAM

  • Die Initialisierungsdateien cfn-credentials, cfn-hup.conf und cfn-auto-reloader.conf konfigurieren.

  • Laden Sie ein Paket wie SharePoint Foundation 2010 herunter und installieren Sie es auf der Serverinstanz.

  • Verwenden Sie a WaitCondition , um sicherzustellen, dass die Ressourcen bereit sind.

  • Eine IP-Adresse für die Instance mit Amazon Elastic IP (EIP) abrufen.

Das AWS CloudFormation Hilfsskript cfn-init wird verwendet, um jede dieser Aktionen auf der Grundlage der Informationen in der AWS::CloudFormation::Init Ressource in der Windows Single Server Sharepoint Foundation-Vorlage auszuführen.

Der AWS::CloudFormation::Init Abschnitt trägt den Namen "SharePointFoundation„und beginnt mit einer Standarddeklaration:

"SharePointFoundation": { "Type" : "AWS::EC2::Instance", "Metadata" : { "AWS::CloudFormation::Init" : { "config" : {

Danach wird der Dateien-Abschnitt von AWS::CloudFormation::Init deklariert:

"files" : { "c:\\cfn\\cfn-hup.conf" : { "content" : { "Fn::Join" : ["", [ "[main]\n", "stack=", { "Ref" : "AWS::StackName" }, "\n", "region=", { "Ref" : "AWS::Region" }, "\n" ]]} }, "c:\\cfn\\hooks.d\\cfn-auto-reloader.conf" : { "content": { "Fn::Join" : ["", [ "[cfn-auto-reloader-hook]\n", "triggers=post.update\n", "path=Resources.SharePointFoundation.Metadata.AWS::CloudFormation::Init\n", "action=cfn-init.exe -v -s ", { "Ref" : "AWS::StackName" }, " -r SharePointFoundation", " --region ", { "Ref" : "AWS::Region" }, "\n" ]]} }, "C:\\SharePoint\\SharePointFoundation2010.exe" : { "source" : "http://d3adzpja92utk0.cloudfront.net/SharePointFoundation.exe" } },

Hier werden drei Dateien erstellt und im Verzeichnis C:\cfn auf der Server-Instance platziert. Sie sind:

  • cfn-hup.conf, die Konfigurationsdatei für "cfn-hup".

  • cfn-auto-reloader.conf, die Konfigurationsdatei für den von „cfn-hup“ verwendeten Hook, um ein Update (Aufrufen von cfn-init) zu initiieren, wenn sich die Metadaten in AWS::CloudFormation::Init ändern.

Es gibt auch eine Datei, die auf den Server heruntergeladen wird: SharePointFoundation.exe. Diese Datei wird für die Installation SharePoint auf der Serverinstanz verwendet.

Wichtig

Da Pfade unter Windows einen umgekehrten Schrägstrich ('\') verwenden, müssen Sie immer daran denken, alle umgekehrten Schrägstriche korrekt zu maskieren, indem Sie immer dann, wenn Sie in der Vorlage auf einen Windows-Pfad verweisen, einen weiteren umgekehrten Schrägstrich voranstellen. AWS CloudFormation

Als Nächstes folgt der Abschnitt commands, der cmd.exe-Befehle enthält.

"commands" : { "1-extract" : { "command" : "C:\\SharePoint\\SharePointFoundation2010.exe /extract:C:\\SharePoint\\SPF2010 /quiet /log:C:\\SharePoint\\SharePointFoundation2010-extract.log" }, "2-prereq" : { "command" : "C:\\SharePoint\\SPF2010\\PrerequisiteInstaller.exe /unattended" }, "3-install" : { "command" : "C:\\SharePoint\\SPF2010\\setup.exe /config C:\\SharePoint\\SPF2010\\Files\\SetupSilent\\config.xml" }

Da Befehle in der Instance verarbeitet in alphabetischer Reihenfolge nach Name verarbeitet werden, wurde jedem Befehl eine Zahl vorangestellt, die die gewünschte Ausführungsreihenfolge angibt. Auf diese Weise können wir sicherstellen, dass das Installationspaket zuerst extrahiert, dann alle erforderlichen Komponenten installiert und schließlich die Installation von gestartet wird. SharePoint

Als Nächstes folgt der Abschnitt Properties:

"Properties": { "InstanceType" : { "Ref" : "InstanceType" }, "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" }, { "Fn::FindInMap" : [ "AWSInstanceType2Arch", { "Ref" : "InstanceType" }, "Arch" ] } ] }, "SecurityGroups" : [ {"Ref" : "SharePointFoundationSecurityGroup"} ], "KeyName" : { "Ref" : "KeyPairName" }, "UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [ "<script>\n", "cfn-init.exe -v -s ", { "Ref" : "AWS::StackName" }, " -r SharePointFoundation", " --region ", { "Ref" : "AWS::Region" }, "\n", "cfn-signal.exe -e %ERRORLEVEL% ", { "Fn::Base64" : { "Ref" : "SharePointFoundationWaitHandle" }}, "\n", "</script>" ]]}} }

In diesem Abschnitt enthält die UserData-Eigenschaft ein cmd.exe-Skript, das von cfn-init ausgeführt wird, umgeben von <script>-Tags. Sie können an dieser Stelle ein Windows PowerShell-Skript verwenden, anstatt das Skript in <powershell>-Tags einzuschließen. Für Windows-Stacks müssen Sie die Verarbeitungs-URL der Wartebedingung erneut mit base64 kodieren.

SharePointFoundationWaitHandle wird hier referenziert und mit ausgeführtcfn-signal. Die WaitConditionHandleund associated WaitConditionwerden als nächstes in der Vorlage deklariert:

"SharePointFoundationWaitHandle" : { "Type" : "AWS::CloudFormation::WaitConditionHandle" }, "SharePointFoundationWaitCondition" : { "Type" : "AWS::CloudFormation::WaitCondition", "DependsOn" : "SharePointFoundation", "Properties" : { "Handle" : {"Ref" : "SharePointFoundationWaitHandle"}, "Timeout" : "3600" } }

Da die Ausführung aller Schritte und die Installation eine Weile, aber nicht eine ganze Stunde SharePoint dauern können, WaitCondition wartet der eine Stunde (3600 Sekunden), bevor das Timeout eintritt.

Wenn alles gut geht, wird eine Elastic IP verwendet, um Zugriff auf die Instance zu gewähren: SharePoint

"Outputs" : { "SharePointFoundationURL" : { "Value" : { "Fn::Join" : ["", ["http://", { "Ref" : "SharePointFoundationEIP" } ]] }, "Description" : "SharePoint Team Site URL. Please retrieve Administrator password of the instance and use it to access the URL" }

Sobald die Stack-Erstellung abgeschlossen ist, wird die von EIP bereitgestellte IP-Adresse auf der Registerkarte Outputs der AWS CloudFormation Konsole angezeigt. Bevor Sie jedoch auf die Instance zugreifen können, müssen Sie das generierte, temporäre Administratorpasswort für die Instance abrufen. Weitere Informationen finden Sie unter Herstellen einer Verbindung zu Ihrer Windows-Instance mithilfe von RDP im Amazon EC2 EC2-Benutzerhandbuch.

Verwalten von Windows-Services

Windows-Services werden genau wie Linux-Services verwaltet, mit der Ausnahme, dass ein windows-Schlüssel anstelle von sysvinit verwendet wird. Das folgende Beispiel startet den cfn-hup-Service, legt ihn auf automatisch fest und startet den Service neu, wenn cfn-init die angegebenen Konfigurationsdateien c:\cfn\cfn-hup.conf oder c:\cfn\hooks.d\cfn-auto-reloader.conf ändert.

"services" : { "windows" : { "cfn-hup" : { "enabled" : "true", "ensureRunning" : "true", "files" : ["c:\\cfn\\cfn-hup.conf", "c:\\cfn\\hooks.d\\cfn-auto-reloader.conf"] } } }

Andere Windows-Services können unter Verwendung des Namens – nicht des Anzeigenamens – zum Verweisen auf den Service auf die gleiche Weise verwaltet werden.

Fehlerbehebung bei Problemen bei der Stack-Erstellung

Wenn bei Ihrem Stack während der Erstellung ein Fehler auftritt, lautet das Standardverhalten "Rollback bei Fehler. Dies ist zwar in der Regel ein gutes Standardverhalten, da unnötige Kosten vermieden werden, es ist aber schwierig zu debuggen, warum bei der Stack-Erstellung ein Fehler auftrat.

Um dieses Verhalten zu deaktivieren, wählen Sie „Erweiterte Optionen anzeigen“, wenn Sie Ihren Stack mit der AWS CloudFormation Konsole erstellen, und wählen Sie die Option „Nein“ neben Rollback bei Fehler aus. Auf diese Weise können Sie sich bei Ihrer Instance anmelden und die Protokolldateien anzeigen, um Probleme beim Ausführen der Startup-Skripts zu ermitteln.

Wichtige Protokolle, die sich Sie ansehen sollten:

  • Das EC2-Konfigurationsprotokoll unter C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2ConfigLog.txt

  • Das cfn-init-Protokoll in C:\cfn\log\cfn-init.log

Weitere Protokolle finden Sie in folgenden EC2-Handbüchern: