Avvio degli stack di Windows AWS CloudFormation - AWS CloudFormation

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Avvio degli stack di Windows AWS CloudFormation

In questo argomento viene descritto come eseguire il bootstrap di uno stack di Windows e risolvere i problemi di creazione dello stack. Se intendi creare la tua immagine Windows da utilizzare con CloudFormation, consulta le informazioni in Configurazione di un'istanza di Windows EC2ConfigService nell'Amazon EC2 Microsoft Windows Guide per le istruzioni. È necessario configurare un'istanza Windows EC2ConfigService affinché funzioni con gli strumenti di AWS CloudFormation avvio.

Esempio di processo di bootstrap di uno stack di Windows

A scopo illustrativo, esamineremo un modello di server a istanza AWS CloudFormation singola SharePoint.

Il modello può essere visualizzato nella sua interezza al seguente indirizzo: URL

In questo esempio viene illustrato come:

  • Crea un utente e un gruppo di sicurezza per l'accesso all'istanza. IAM

  • Configura i file di inizializzazione: cfn-credentials, cfn-hup.conf e cfn-auto-reloader.conf.

  • Scarica e installa un pacchetto come SharePoint Foundation 2010 sull'istanza del server.

  • Usa a WaitCondition per assicurarti che le risorse siano pronte.

  • Recupera un IP per l'istanza con Amazon Elastic IP (EIP).

Lo script di AWS CloudFormation supporto cfn-init viene utilizzato per eseguire ognuna di queste azioni, in base alle informazioni contenute nella AWS::CloudFormation::Init risorsa nel modello Windows Single Server Sharepoint Foundation.

La AWS::CloudFormation::Init sezione è denominata "SharePointFoundation«e inizia con una dichiarazione standard:

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

Successivamente, viene dichiarata la sezione dei file di AWS::CloudFormation::Init:

"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" } },

Qui vengono creati tre file e collocati nella directory C:\cfn sull'istanza del server. Tali file sono:

  • cfn-hup.conf, il file di configurazione per cfn-hup.

  • cfn-auto-reloader.conf, il file di configurazione per l'hook utilizzato da cfn-hup per l'inizializzazione e l'aggiornamento (chiamando cfn-init) quando i metadati in AWS::CloudFormation::Init cambiano.

È inoltre disponibile un file che viene scaricato nel server: SharePointFoundation.exe. Questo file viene utilizzato per l'installazione SharePoint sull'istanza del server.

Importante

Poiché i percorsi in Windows utilizzano un carattere barra rovesciata ('\'), devi sempre ricordarti di evitare correttamente tutte le barre rovesciate anteponendo un'altra barra rovesciata ogni volta che fai riferimento a un percorso di Windows nel modello. AWS CloudFormation

A seguire, viene visualizzata la sezione commands, che include comandi cmd.exe.

"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" }

Poiché i comandi nell'istanza vengono elaborati in ordine alfabetico in base al nome, ogni comando è preceduto da un numero che indica l'ordine di esecuzione desiderato. Quindi, possiamo assicurarci che il pacchetto di installazione venga prima estratto, tutti i prerequisiti vengano quindi installati e infine che venga avviata l'installazione di. SharePoint

A seguire viene visualizzata la sezione 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 questa sezione, la proprietà UserData contiene uno script cmd.exe che verrà eseguito da cfn-init, racchiuso tra tag <script>. Puoi utilizzare qui uno script di Windows Powershell racchiudendolo con tag <powershell>. Per gli stack di Windows, è necessario codificare nuovamente in base64 la maniglia della condizione di attesa. URL

SharePointFoundationWaitHandle è referenziato qui ed è eseguito con. cfn-signal I WaitConditionHandlee associati WaitConditionvengono dichiarati di seguito nel modello:

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

Poiché l'esecuzione di tutti i passaggi e l'installazione SharePoint potrebbero richiedere del tempo, ma non un'ora intera, occorre WaitCondition attendere un'ora (3600 secondi) prima del timeout.

Se tutto va bene, viene utilizzato un IP elastico per fornire l'accesso all'istanza: 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" }

Una volta completata la creazione dello stack, l'indirizzo IP fornito da EIP verrà visualizzato nella scheda Output della AWS CloudFormation console. Tuttavia, prima di poter accedere all'istanza sarà necessario recuperare la password amministratore temporanea generata per l'istanza. Per ulteriori informazioni, consulta Connessione alla tua istanza Windows utilizzando RDP nella Amazon EC2 User Guide.

Come gestire i servizi Windows

I servizi Windows vengono gestiti come servizi Linux, tranne che si utilizza una chiave windows anziché sysvinit. Nell'esempio seguente viene avviato il servizio cfn-hup, impostato su Automatic (Automatico) e riavviato il servizio se cfn-init modifica i file di configurazione c:\cfn\cfn-hup.conf o c:\cfn\hooks.d\cfn-auto-reloader.conf.

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

Puoi gestire altri servizi Windows nello stesso modo utilizzando il nome, non il nome visualizzato, per fare riferimento al servizio.

Come risolvere problemi di creazione dello stack

Se si verifica un errore durante la creazione dello stack, il comportamento predefinito è Rollback on failure (Rollback su errore). Sebbene sia in genere una buona impostazione predefinita perché evita costi non necessari, rende difficile il debug del motivo dell'errore di creazione dello stack.

Per disattivare questo comportamento, scegli Mostra opzioni avanzate quando crei lo stack con la AWS CloudFormation console e seleziona il selettore No accanto a Rollback in caso di errore. Questo consente di accedere all'istanza e visualizzare i file di log per individuare problemi rilevati durante l'esecuzione degli script di avvio.

Log importanti da guadare sono:

  • Il registro di configurazione all'indirizzo EC2 C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2ConfigLog.txt

  • Il log cfn-init in C:\cfn\log\cfn-init.log

Consulta queste EC2 guide per altri log: