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 Usa il servizio EC2 Config per eseguire attività durante l'avvio di un'istanza del sistema operativo Windows EC2 legacy nella Amazon EC2 User Guide per le istruzioni. È necessario configurare un'istanza di Windows con il servizio EC2 Config affinché funzioni con gli strumenti di AWS CloudFormation bootstrap.
Esempio di processo di bootstrap di uno stack di Windows
A scopo illustrativo, esamineremo un AWS CloudFormation modello di server a istanza singola. SharePoint
Il modello può essere visualizzato nella sua interezza al seguente URL:
In questo esempio viene illustrato come:
-
Crea un utente IAM e un gruppo di sicurezza per l'accesso all'istanza.
-
Configura i file di inizializzazione:
cfn-credentials
,cfn-hup.conf
ecfn-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. -
Recuperare 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, AWS::CloudFormation::Init
viene dichiarata la files
sezione di:
"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 percfn-hup
. -
cfn-auto-reloader.conf
, il file di configurazione per l'hook utilizzato dacfn-hup
per avviare un aggiornamento (chiamatacfn-init
) quando i metadati contenuti cambiano.AWS::CloudFormation::Init
È 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
La prossima è la sezione, che sono i comandi. commands
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 SharePoint venga avviata l'installazione di.
La prossima è la sezioneProperties
:
"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 UserData
proprietà contiene uno cmd.exe
script che verrà eseguito dacfn-init
, circondato da <script>
tag. In questo caso è possibile utilizzare uno script di Windows Powershell racchiudendo lo script con <powershell>
tag. Per gli stack di Windows, devi nuovamente codificare l'URL dell'handle di condizione di attesa su base64.
SharePointFoundationWaitHandle è referenziato qui ed è eseguito con. cfn-signal
I WaitConditionHandle
e associati WaitCondition
vengono 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 console. AWS CloudFormation Tuttavia, prima di poter accedere all'istanza sarà necessario recuperare la password amministratore temporanea generata per l'istanza. Per ulteriori informazioni, consulta Connect to your Windows using 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
. L'esempio seguente avvia il cfn-hup
servizio, lo imposta su Automatico e riavvia il servizio se cfn-init
modifica i file c:\cfn\cfn-hup.conf
o c:\cfn\hooks.d\cfn-auto-reloader.conf
di configurazione.
"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. Ciò ti consentirà di accedere all'istanza e visualizzare i file di registro per individuare i problemi riscontrati durante l'esecuzione degli script di avvio.
Log importanti da guadare sono:
-
Il log di EC2 configurazione all'indirizzo
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: