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-hup
Description
Le script d'assistant cfn-hup est un programme démon qui détecte les modifications des métadonnées des ressources et exécute des actions spécifiées par l'utilisateur lorsque cela se produit. Cela vous permet de mettre à jour la configuration de vos EC2 instances Amazon en cours d'exécution par le biais de l'UpdateStack
APIaction.
Syntaxe
cfn-hup --config|-c config.dir \ --no-daemon \ --verbose|-v
Options
Name (Nom) | Description | Obligatoire |
---|---|---|
|
Spécifie le chemin d'accès sous lequel le script cfn-hup recherche les répertoires |
Non |
|
Spécifiez cette option pour exécuter le script cfn-hup une fois, puis quittez le programme. |
Non |
|
Spécifiez cette option pour utiliser le mode détaillé. |
Non |
Fichier de configuration cfn-hup.conf
Le fichier cfn-hup.conf stocke le nom de la pile et les informations d' AWS identification ciblées par le démon cfn-hup.
Le fichier cfn-hup.conf utilise le format suivant :
[main] stack=
<stack-name-or-id>
Name (Nom) | Description | Obligatoire |
---|---|---|
|
Nom ou ID de la pile. Type : chaîne |
Oui |
|
Fichier d'informations d'identification spécifique au propriétaire, dans le format utilisé pour les outils de ligne de commande. Type : chaîne Condition : le paramètre |
Non |
|
Le nom d'un IAM rôle associé à l'instance. Type : chaîne |
Non |
|
Nom de la AWS région contenant la pile. Exemple |
Non |
|
Umask utilisé par le démon cfn-hup. Cette valeur peut être spécifiée avec ou sans 0 de tête. Dans les deux cas, elle est interprétée comme un nombre octal (similaire à la commande Linux Type : octal entier compris entre Par défaut : |
Non |
|
Intervalle, en minutes, utilisé pour rechercher les modifications des métadonnées. Type : entier Par défaut : |
Non |
|
Spécifie si la journalisation détaillée doit être utilisée. Type : valeur booléenne Par défaut : |
Non |
Fichier de configuration hooks.conf
Les actions utilisateur que le programme démon cfn-hup appelle périodiquement sont définies dans le fichier de configuration hooks.conf. Le fichier hooks.conf utilise le format suivant :
[hookname] triggers=post.add
or
post.updateor
post.remove path=Resources.<logicalResourceId>
(.Metadataor
.PhysicalResourceId)(.<optionalMetadatapath>
) action=<arbitrary shell command>
runas=<runas user>
Lorsque l'opération est exécutée, elle est exécutée dans une copie de l'environnement actuel (dans lequel se trouve cfn-hup), avec CFN _ OLD _ METADATA défini sur la valeur de métadonnées précédente spécifiée par path, et CFN _ NEW _ METADATA défini sur la valeur actuelle.
Le fichier de configuration hooks est chargé uniquement au démarrage du programme démon cfn-hup. En cas de nouveaux hooks, le démon devra donc être redémarré. Un cache des valeurs de métadonnées précédentes est stocké at /var/lib/cfn-hup/data/metadata _db. Vous pouvez supprimer ce cache pour forcer cfn-hup à exécuter à nouveau toutes les actions post.add.
Name (Nom) | Description | Obligatoire |
---|---|---|
|
Nom unique de ce hook. Type : chaîne |
Oui |
|
Liste CSV des conditions à détecter. Valeurs valides : Exemple : |
Oui |
|
Chemin d'accès vers l'objet de métadonnées. Prend en charge un chemin d'accès long arbitraire dans le bloc de métadonnées. Options de format de chemin d'accès
|
Oui |
|
Commande shell arbitraire qui est exécutée telle quelle. |
Oui |
|
Utilisateur sous lequel exécuter les commandes. Cfn-hup utilise la commande su pour passer à cet utilisateur. |
Oui |
Répertoire hooks.d
Pour permettre la composition de plusieurs applications déployant des hooks de notification des modifications, cfn-hup prend en charge un répertoire nommé hooks.d qui se trouve dans le répertoire de configuration des hooks. Vous pouvez ajouter un ou plusieurs fichiers de configuration de hooks dans le répertoire hooks.d. Les fichiers hooks supplémentaires doivent utiliser la même disposition que le fichier hooks.conf.
Le programme démon cfn-hup analyse et charge chaque fichier dans ce répertoire. Si des hooks du répertoire hooks.d ont le même nom qu'un hook du fichier hooks.conf, ils seront fusionnés (autrement dit, hooks.d remplacera hooks.conf pour toutes les valeurs dupliquées).
Exemple
Dans l'extrait de modèle suivant, CloudFormation déclenche le fichier cfn-auto-reloader.conf
hooks lorsque vous modifiez la AWS::CloudFormation::Init
ressource associée à la LaunchConfig
ressource.
JSON
... "LaunchConfig": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "QBVersion": {"Ref": "paramQBVersion"}, "AWS::CloudFormation::Init" : { ... "/etc/cfn/hooks.d/cfn-auto-reloader.conf": { "content": { "Fn::Join": [ "", [ "[cfn-auto-reloader-hook]\n", "triggers=post.update\n", "path=Resources.LaunchConfig.Metadata.AWS::CloudFormation::Init\n", "action=/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref" : "AWS::StackName" }, " --resource LaunchConfig ", " --configsets wordpress_install ", " --region ", { "Ref" : "AWS::Region" }, "\n", "runas=root\n" ]]}, "mode" : "000400", "owner" : "root", "group" : "root" } ...
YAML
... LaunchConfig: Type: "AWS::AutoScaling::LaunchConfiguration" Metadata: QBVersion: !Ref paramQBVersion AWS::CloudFormation::Init: ... /etc/cfn/hooks.d/cfn-auto-reloader.conf: content: !Sub | [cfn-auto-reloader-hook] triggers=post.update path=Resources.LaunchConfig.Metadata.AWS::CloudFormation::Init action=/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource LaunchConfig --configsets wordpress_install --region ${AWS::Region} runas=root mode: "000400" owner: "root" group: "root" ...
Autre exemple
Pour voir un exemple de modèle, consultez Déployez des applications sur Amazon EC2.