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 EC2 risorsa Amazon 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 di cfn-init supporto viene in genere eseguito dai dati utente di un' EC2 istanza Amazon o di un modello di avvio.

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

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

Gli esempi seguenti mostrano la UserData proprietà di un' EC2 istanza, che esegue il InstallAndRun set di configurazione associato alla WebServerInstance risorsa.

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: !Base64 Fn::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 AWS CloudFormation User Guide.

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