cfn-init - AWS CloudFormation

Il s'agit du nouveau guide AWS CloudFormation de référence des modèles. Veuillez mettre à jour vos favoris et vos liens. Pour obtenir de l'aide pour démarrer CloudFormation, consultez le guide de AWS CloudFormation l'utilisateur.

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

Dans un CloudFormation modèle, vous pouvez l'utiliser AWS::CloudFormation::Init dans la Metadata section d'une EC2 ressource Amazon pour définir des tâches d'initialisation. Pour de plus amples informations, veuillez consulter AWS::CloudFormation::Init.

Le script d'cfn-initassistance lit les métadonnées du modèle à partir de la AWS::CloudFormation::Init clé 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 ;

  • services Enable/disable and start/stop

Le script d'cfn-initassistance est généralement exécuté à partir des données utilisateur d'une EC2 instance Amazon ou d'un modèle de lancement.

Si vous utilisez des scripts d'assistance pour la première fois, nous vous recommandons de suivre d'abord le EC2 didacticiel Deploying applications on Amazon dans le guide de l'AWS CloudFormation utilisateur.

Note

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

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
Note

cfn-initne nécessite pas d'informations d'identification, vous n'avez donc pas besoin d'utiliser les --credential-file options --access-key --secret-key--role,, ou. Toutefois, si aucune information d'identification n'est spécifiée, CloudFormation vérifie l'appartenance de la pile et limite la portée de l'appel à la pile à laquelle l'instance appartient. Pour de plus amples informations, veuillez consulter Autorisations pour les scripts d'assistant.

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

Nom d'un rôle IAM 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

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

Type : chaîne

Non

--https-proxy

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

Type : chaîne

Non

-v, --verbose

Sortie détaillée. Ceci est utile pour le débogage des cas où cfn-init l'initialisation échoue.

Note

Pour déboguer les événements d'initialisation, vous devez activerDisableRollback. Vous pouvez ensuite vous connecter à la console par SSH et lire les journaux sur/var/log/cfn-init.log. Pour plus d'informations, voir Choisir le mode de gestion des défaillances lors du provisionnement des ressources dans le Guide de l'AWS CloudFormation utilisateur.

Non

-h, --help

Affiche le message d'aide, puis se ferme.

Non

Exemples

Exemples Amazon Linux

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

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

Pour un didacticiel avec un exemple de modèle, consultez la section Déploiement d'applications sur Amazon EC2 dans le guide de AWS CloudFormation l'utilisateur.

WindowsPar exemple, consultez la section CloudFormation Stacks Windows basés sur le bootstrap dans le guide de l'AWS CloudFormation utilisateur.

Vous pouvez également visiter notre GitHub référentiel pour télécharger des exemples de modèles que nous utilisonscfn-init, notamment les modèles suivants.

Par exemple, les modèles de pile LAMP qui utilisentcfn-init, voir ec2-lamp-server sur le site Web. GitHub