cfn-init - 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à.

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 /path/to/file_name, l'operazione genera due file: /path/to/file_name.bak racchiude i contenuti del file originale e /path/to/file_name racchiude i contenuti aggiornati.

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|-r logical.resource.id \ --region region \ --access-key access.key \ --secret-key secret.key \ --role rolename \ --credential-file|-f credential.file \ --configsets|-c config.sets \ --url|-u service.url \ --http-proxy HTTP.proxy \ --https-proxy HTTPS.proxy \ --verbose|-v

Opzioni

Nome Descrizione Richiesto

-s, --stack

Nome dello stack o ID stack.

Tipo: Stringa

Default: nessuna

Esempio: --stack { "Ref" : "AWS::StackName" },

-r, --resource

L'ID di risorsa logica della risorsa che contiene i metadati.

Tipo: Stringa

Esempio: --resource WebServerHost

--region

L'endpoint CloudFormation regionale da utilizzare.

Tipo: Stringa

Default: us-east-1

Esempio: --region ", { "Ref" : "AWS::Region" },

No

--access-key

AWS chiave di accesso per un account con autorizzazione alla chiamataDescribeStackResource. CloudFormation Il parametro del file delle credenziali sostituisce questo parametro.

Tipo: Stringa

No

--secret-key

AWS chiave di accesso segreta che corrisponde al valore specificato AWS chiave di accesso.

Tipo: Stringa

No

--role

Il nome di un IAM ruolo associato all'istanza.

Tipo: Stringa

Condizione: il parametro del file delle credenziali sostituisce questo parametro.

No

-f, --credential-file

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

-c, --configsets

Un elenco separato da virgole di set di configurazione da eseguire (in ordine).

Tipo: Stringa

Default: default

No

-u, --url

L' CloudFormation endpoint da usare.

Tipo: Stringa

No

--http-proxy

Un HTTP proxy (non-SSL). Utilizza il seguente formato: http://user:password@host:port

Tipo: Stringa

No

--https-proxy

Un HTTPS proxy. Utilizza il seguente formato: https://user:password@host:port

Tipo: Stringa

No

-v, --verbose

Output verboso. Questa funzione è utile per il debug dei casi in cui cfn-init non si inizializza.

Nota

Per 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

-h, --help

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