Bootstrapping AWS CloudFormation Windows-Stapel - 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 Windows-Stapel

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 mithilfe EC2ConfigService des Amazon EC2 Microsoft Windows-Handbuchs. Sie müssen eine Windows-Instance einrichten, EC2ConfigService damit sie mit dem funktioniert AWS CloudFormation Bootstrapping-Tools.

Beispiel für das Bootstrapping eines Windows-Stacks

Zur Veranschaulichung untersuchen wir ein AWS CloudFormation Vorlage für einen SharePoint Server mit einer Instanz.

Die Vorlage kann in ihrer Gesamtheit unter folgender Adresse eingesehen werden: URL

In diesem Beispiel wird gezeigt, wie Sie:

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

  • 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.

  • Rufen Sie mit Amazon Elastic IP (EIP) eine IP für die Instance ab.

Das Tool AWS CloudFormation Für jede dieser Aktionen cfn-init wird ein Hilfsskript verwendet, das auf Informationen in der AWS::CloudFormation::Init Ressource in der Sharepoint Foundation-Vorlage für Windows Single Server basiert.

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 auf einen Windows-Pfad verweisen, einen weiteren umgekehrten Schrägstrich voranstellen AWS CloudFormation Vorlage.

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. Somit können wir sicherstellen, dass das Installationspaket zuerst extrahiert wird, dann alle Voraussetzungen installiert sind und schließlich die Installation von gestartet SharePoint wird.

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. Bei Windows-Stacks müssen Sie das Wartebedingungs-Handle erneut base64-kodieren. URL

SharePointFoundationWaitHandle wird hier referenziert und mit ausgeführt. cfn-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 den Zugriff auf die SharePoint Instance zu ermöglichen:

"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, EIP wird die von bereitgestellte IP-Adresse auf der Registerkarte Outputs des AWS CloudFormation console. 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 RDP im EC2Amazon-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 dem AWS CloudFormation Konsole und wählen Sie neben Rollback at failure die Option Nein 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 diesen EC2 Anleitungen: