Bootstrapping von AWS CloudFormation 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 von AWS CloudFormation 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 Konfigurieren einer Windows-Instance mit EC2ConfigService im Amazon EC2 Microsoft Windows-Handbuch. Sie müssen eine Windows-Instance mit EC2ConfigService einrichten, damit sie mit den AWS CloudFormation Bootstrapping-Tools funktioniert.

Beispiel für das Bootstrapping eines Windows-Stacks

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

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

In diesem Beispiel wird gezeigt, wie Sie:

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

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

  • Verwenden Sie eine WaitCondition , um sicherzustellen, dass 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 auszuführen, basierend auf Informationen in der AWS::CloudFormation::Init Ressource in der Vorlage Windows Single Server Sharepoint Foundation.

Der AWS::CloudFormation::Init Abschnitt heißt „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 verwendet, um auf der Server-Instance zu installieren SharePoint.

Wichtig

Da Pfade unter Windows einen umgekehrten Schrägstrich (\) verwenden, müssen Sie immer daran denken, alle umgekehrten Schrägstriche ordnungsgemäß mit einem Escape-Zeichen zu versehen, indem Sie einen weiteren umgekehrten Schrägstrich voranstellen, wenn Sie in der AWS CloudFormation Vorlage auf einen Windows-Pfad verweisen.

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 Voraussetzungen installiert 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. 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. WaitConditionHandle und die verknüpfte WaitCondition werden in der Vorlage als Nächstes 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 dauern SharePoint kann, aber nicht eine ganze Stunde, WaitCondition wartet die eine Stunde (3600 Sekunden), bevor eine Zeitüberschreitung eintritt.

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

"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 mit Ihrer Windows-Instance über RDP im Amazon EC2-Benutzerhandbuch für Windows-Instances.

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 beim Erstellen Ihres Stacks mit der AWS CloudFormation Konsole die Option Erweiterte Optionen anzeigen und wählen Sie neben Rollback bei Fehler die Option Keine 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: