cfn-init - AWS CloudFormation

Questa è la nuova Guida di riferimento ai modelli CloudFormation . Aggiorna i segnalibri e i link. Per informazioni su come iniziare CloudFormation, consulta la Guida AWS CloudFormation per l'utente.

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

In un CloudFormation modello, puoi utilizzarlo AWS::CloudFormation::Init all'interno della Metadata sezione di una risorsa Amazon EC2 per definire le attività di inizializzazione. Per ulteriori informazioni, consulta AWS::CloudFormation::Init.

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

  • Servizi Enable/disable and start/stop

Lo script helper cfn-init viene in genere eseguito dai dati utente di un’istanza Amazon EC2 o di un modello di lancio.

Se non conosci l’utilizzo degli script di supporto, ti consigliamo di completare prima il tutorial Deploying applications on Amazon EC2 nella Guida per l’utente di AWS CloudFormation .

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.

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
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 la sottoscrizione allo stack e limita l'ambito della chiamata allo stack a cui l'istanza appartiene. Per ulteriori informazioni, consulta Autorizzazioni per gli script helper.

Opzioni

Nome Description 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 a chiamareDescribeStackResource. CloudFormation Il parametro del file delle credenziali sostituisce questo parametro.

Tipo: stringa

No

--secret-key

AWS chiave di accesso segreta che corrisponde alla chiave di AWS accesso specificata.

Tipo: stringa

No

--role

Il nome di un ruolo IAM 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 proxy HTTP (non SSL). Utilizzare il seguente formato: http://user:password@host:port

Tipo: stringa

No

--https-proxy

Un proxy HTTPS. Utilizzare 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 di eventi di inizializzazione, devi attivare DisableRollback. Puoi quindi utilizzare SSH nella console e leggere i log in /var/log/cfn-init.log. Per ulteriori informazioni, consulta Choose how to handle failures when provisioning resources nella Guida per l’utente di AWS CloudFormation .

No

-h, --help

Mostra il messaggio di aiuto ed esce.

No

Esempi

Esempi Amazon Linux

I seguenti esempi mostrano le proprietà UserData di un’istanza EC2, che esegue il set di configurazione InstallAndRun associato alla risorsa WebServerInstance.

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::Sub.

UserData: Fn::Base64: !Sub | #!/bin/bash -xe yum update -y aws-cfn-bootstrap # Install the files and packages from the metadata /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource WebServerInstance --configsets InstallAndRun --region ${AWS::Region}

Per un tutorial con un modello di esempio, consulta Deploying applications on Amazon EC2 nella Guida per l’utente di AWS CloudFormation .

Per un Windows esempio, consulta gli CloudFormation stack Windows basati su Bootstrap nella Guida per l'utente.AWS CloudFormation

Puoi anche visitare il nostro GitHub repository per scaricare i modelli di esempio che utilizziamocfn-init, inclusi i seguenti modelli.

Ad esempio, i modelli di stack LAMP che utilizzanocfn-init, vedi ec2-lamp-server sul sito web. GitHub