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à.
cfn-init
Descrizione
Lo script helper cfn-init legge i metadati del modello dalla chiave AWS::CloudFormation::Init
e agisce di conseguenza per:
-
Recupera e analizza i metadati da CloudFormation
-
Installa i pacchetti
-
Scrivere file su disco
-
Abilitare/disabilitare e avviare/interrompere i servizi
Nota
Se utilizzi cfn-init per aggiornare un file esistente, crea una copia di backup del file originale nella stessa directory con un'estensione bak. Ad esempio, se aggiorni /
, l'operazione genera due file: path
/to
/file_name
/
racchiude i contenuti del file originale e path
/to
/file_name
.bak/
racchiude i contenuti aggiornati.path
/to
/file_name
Per ulteriori informazioni sui metadata del modello, consulta AWS::CloudFormation::Init.
Nota
cfn-init non richiede credenziali, pertanto non è necessario utilizzare le opzioni --access-key
, --secret-key
,--role
o --credential-file
. Tuttavia, se non viene specificata alcuna credenziale, CloudFormation verifica l'appartenenza allo stack e limita l'ambito della chiamata allo stack a cui appartiene l'istanza.
Sintassi
cfn-init --stack|-s
stack.name.or.id
\ --resource|-rlogical.resource.id
\ --regionregion
\ --access-keyaccess.key
\ --secret-keysecret.key
\ --rolerolename
\ --credential-file|-fcredential.file
\ --configsets|-cconfig.sets
\ --url|-uservice.url
\ --http-proxyHTTP.proxy
\ --https-proxyHTTPS.proxy
\ --verbose|-v
Opzioni
Nome | Descrizione | Richiesto |
---|---|---|
|
Nome dello stack o ID stack. Tipo: Stringa Default: nessuna Esempio: |
Sì |
|
L'ID di risorsa logica della risorsa che contiene i metadati. Tipo: Stringa Esempio: |
Sì |
|
L'endpoint CloudFormation regionale da utilizzare. Tipo: Stringa Default: Esempio: |
No |
|
AWS chiave di accesso per un account con autorizzazione alla chiamata Tipo: Stringa |
No |
|
AWS chiave di accesso segreta che corrisponde al valore specificato AWS chiave di accesso. Tipo: Stringa |
No |
|
Il nome di un IAM ruolo associato all'istanza. Tipo: Stringa Condizione: il parametro del file delle credenziali sostituisce questo parametro. |
No |
|
Un file che contiene sia una chiave di accesso segreta sia una chiave di accesso. Il parametro del file delle credenziali sostituisce i parametri di ruolo, chiave di accesso e chiave segreta. Tipo: Stringa |
No |
|
Un elenco separato da virgole di set di configurazione da eseguire (in ordine). Tipo: Stringa Default: |
No |
|
L' CloudFormation endpoint da usare. Tipo: Stringa |
No |
|
Un HTTP proxy (non-SSL). Utilizza il seguente formato: Tipo: Stringa |
No |
|
Un HTTPS proxy. Utilizza il seguente formato: Tipo: Stringa |
No |
|
Output verboso. Questa funzione è utile per il debug dei casi in cui cfn-init non si inizializza. NotaPer eseguire il debug degli eventi di inizializzazione, è necessario DisableRollback attivarlo. È possibile farlo utilizzando la CloudFormation console, selezionando Mostra opzioni avanzate e quindi impostando Rollback in caso di errore su No. È quindi possibile accedere alla console e leggere i log SSH in /var/log/cfn-init.log. |
No |
|
Mostra il messaggio di aiuto ed esce. |
No |
Esempio
Esempio Amazon Linux
I seguenti frammenti mostrano la UserData
proprietà di un'istanza, che esegue il set di configurazione associato alla risorsaEC2. InstallAndRun
WebServerInstance
Per un esempio di modello completo, consulta Distribuisci applicazioni su Amazon EC2.
Per includere la versione più recente, aggiungi yum install -y aws-cfn-bootstrap
a UserData
.
JSON
Proprietà UserData
utilizzando la funzione intrinseca Fn::Join
.
{ "UserData": { "Fn::Base64": { "Fn::Join": [ "", [ "#!/bin/bash -xe\n", "", "yum install -y aws-cfn-bootstrap", "/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref": "AWS::StackName" }, " --resource WebServerInstance ", " --configsets InstallAndRun ", " --region ", { "Ref": "AWS::Region" }, "\n" ] ] } } }
YAML
Proprietà UserData
utilizzando la funzione intrinseca Fn::Join
.
UserData: !Base64 'Fn::Join': - '' - - | #!/bin/bash -xe - '' - yum install -y aws-cfn-bootstrap - '/opt/aws/bin/cfn-init -v ' - ' --stack ' - !Ref 'AWS::StackName' - ' --resource WebServerInstance ' - ' --configsets InstallAndRun ' - ' --region ' - !Ref 'AWS::Region' - |+
JSON
Proprietà UserData
utilizzando la funzione intrinseca Fn::Sub
.
{ "UserData": { "Fn::Base64": { "Fn::Sub": [ "#!/bin/bash -x\n# Install the files and packages from the metadata\n/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}\n\n# Signal the status from cfn-init\n/opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}\n", {} ] } } }
YAML
Proprietà UserData
utilizzando la funzione intrinseca Fn::Sub
.
UserData: !Base64 'Fn::Sub': - > #!/bin/bash -x # Install the files and packages from the metadata /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region} # Signal the status from cfn-init /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region} - {}