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.
L'cfn-hup
assistant est un démon qui détecte les modifications apportées aux métadonnées des ressources et exécute les actions spécifiées par l'utilisateur lorsqu'une modification est détectée. 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.
Rubriques
Syntaxe
cfn-hup --config|-c config.dir \ --no-daemon \ --verbose|-v
Options
Name (Nom) | Description | Obligatoire |
---|---|---|
|
Spécifie le chemin que le |
Non |
|
Spécifiez cette option pour exécuter le |
Non |
|
Spécifiez cette option pour utiliser le mode détaillé. |
Non |
Fichier de configuration cfn-hup.conf
Le cfn-hup.conf
fichier stocke le nom de la pile et les AWS
informations d'identification ciblées par le cfn-hup
démon.
Le cfn-hup.conf
fichier 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 |
|
Nom d'un rôle IAM associé à l'instance. Type : chaîne |
Non |
|
Nom de la AWS région contenant la pile. Exemple |
Non |
|
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 |
hooks.conf
fichier de configuration
Les actions utilisateur que le cfn-hup
daemon appelle régulièrement sont définies dans le fichier de hooks.conf
configuration. Le hooks.conf
fichier utilise le format suivant :
[hookname]
triggers=post.add or
post.update or
post.remove
path=Resources.<logicalResourceId>
(.Metadata or
.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 (cfn-hup
c'est-à-dire dans), avec CFN_OLD_METADATA
la valeur de métadonnées précédente spécifiée par le chemin et CFN_NEW_METADATA
définie sur la valeur actuelle.
Le fichier de configuration des hooks est chargé uniquement au démarrage du cfn-hup
démon. Les nouveaux hooks nécessiteront donc le redémarrage du démon. Un cache contenant les valeurs de métadonnées précédentes est stocké dans /var/lib/cfn-hup/data/metadata_db
: vous pouvez supprimer ce cache pour forcer l'exécution cfn-hup
de toutes les post.add
actions à nouveau.
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 |
|
Un utilisateur sous lequel exécuter les commandes. |
Oui |
hooks.d
annuaire
Pour prendre en charge la composition de plusieurs applications déployant des crochets de notification de modification, cfn-hup
prend en charge un répertoire nommé hooks.d
situé dans le répertoire de configuration des crochets. Vous pouvez placer un ou plusieurs fichiers de configuration de hooks supplémentaires dans le hooks.d
répertoire. Les fichiers hooks supplémentaires doivent utiliser la même mise en page que le hooks.conf
fichier.
Le cfn-hup
démon analyse et charge chaque fichier de ce répertoire. Si l'un des crochets du hooks.d
répertoire porte le même nom qu'un crochethooks.conf
, les crochets seront fusionnés (ce qui signifie qu'ils hooks.d
remplaceront toutes hooks.conf
les valeurs spécifiées par les deux fichiers).
Exemples
Dans les exemples suivants, 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"
...
Ressources connexes
Pour un exemple de modèle, consultez la section Déploiement d'applications sur Amazon EC2 CloudFormation dans le guide de AWS CloudFormation l'utilisateur.