cfn-init - AWS CloudFormation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

cfn-init

Description

Le script d'assistant cfn-init lit les métadonnées du modèle à partir de la clé AWS::CloudFormation::Init et agit en conséquence pour :

  • Récupérez et analysez les métadonnées depuis CloudFormation

  • Installation des packages

  • enregistrer les fichiers sur le disque ;

  • Enable/disable and start/stopservices

Note

Si vous utilisez cfn-init pour mettre à jour un fichier existant, il crée une copie de sauvegarde du fichier d'origine dans le même répertoire avec une extension .bak. Par exemple, si vous mettez à jour /path/to/file_name, cette action génère deux fichiers : /path/to/file_name.bak inclut le contenu du fichier d'origine et /path/to/file_name contient le contenu mis à jour.

Pour plus d'informations sur les métadonnées d'un modèle, consultez AWS::CloudFormation::Init.

Note

cfn-init ne requiert pas d'informations d'identification. Dès lors, vous n'avez pas besoin d'utiliser les options --access-key, --secret-key, --role ou --credential-file. Toutefois, si aucune information d'identification n'est spécifiée, CloudFormation vérifie l'appartenance à la pile et limite la portée de l'appel à la pile à laquelle appartient l'instance.

Syntaxe

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

Options

Name (Nom) Description Obligatoire

-s, --stack

Nom de la pile ou ID de la pile.

Type : chaîne

Par défaut : aucun

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

Oui

-r, --resource

ID de ressource logique de la ressource qui contient les métadonnées.

Type : chaîne

Exemple : --resource WebServerHost

Oui

--region

Le point de terminaison CloudFormation régional à utiliser.

Type : chaîne

Par défaut : us-east-1

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

Non

--access-key

AWS clé d'accès pour un compte autorisé DescribeStackResource à appeler CloudFormation. Le paramètre du fichier d'informations d'identification prévaut sur ce paramètre.

Type : chaîne

Non

--secret-key

AWS clé d'accès secrète qui correspond à la clé AWS d'accès spécifiée.

Type : chaîne

Non

--role

Le nom d'un IAM rôle associé à l'instance.

Type : chaîne

Condition : le paramètre du fichier d'informations d'identification prévaut sur ce paramètre.

Non

-f, --credential-file

Fichier qui contient une clé d'accès secrète et une clé d'accès. Le paramètre du fichier d'informations d'identification supplante les paramètres --role, --access-key et --secret-key.

Type : chaîne

Non

-c, --configsets

Liste CSV de jeux de configuration à exécuter (dans l'ordre).

Type : chaîne

Par défaut : default

Non

-u, --url

Le CloudFormation point de terminaison à utiliser.

Type : chaîne

Non

--http-proxy

Un HTTP proxy (non-SSL). Utilisez le format suivant : http://user:password@host:port

Type : chaîne

Non

--https-proxy

Un HTTPS proxy. Utilisez le format suivant : https://user:password@host:port

Type : chaîne

Non

-v, --verbose

Sortie détaillée. Cela est utile pour déboguer les cas où l'initialisation de cfn-init échoue.

Note

Pour déboguer les événements d'initialisation, vous devez activer DisableRollback . Vous pouvez le faire en utilisant la CloudFormation console, en sélectionnant Afficher les options avancées, puis en attribuant à Rollback en cas d'échec la valeur Non. Vous pouvez SSH ensuite accéder à la console et lire les journaux at /var/log/cfn -init.log.

Non

-h, --help

Affiche le message d'aide, puis se ferme.

Non

Exemple

Exemple de Amazon Linux

Les extraits suivants montrent la UserData propriété d'une EC2 instance qui exécute le InstallAndRun configset associé à la ressource. WebServerInstance

Pour obtenir un exemple de modèle complet, consultez Déployez des applications sur Amazon EC2.

Pour inclure la dernière version, ajoutez yum install -y aws-cfn-bootstrap aux UserData.

JSON

Propriété UserData utilisant la fonction intrinsèque 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

Propriété UserData utilisant la fonction intrinsèque 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

Propriété UserData utilisant la fonction intrinsèque 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

Propriété UserData utilisant la fonction intrinsèque 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} - {}