Esta es la nueva Guía de referencia de plantillas de CloudFormation. Actualice sus marcadores y enlaces. Para obtener ayuda sobre cómo empezar a usar CloudFormation, consulte la Guía del usuario de AWS CloudFormation.
cfn-hup
El script auxiliar cfn-hup es un daemon que detecta cambios en los metadatos de recursos y ejecuta acciones especificadas por el usuario cuando se detecta un cambio. Esto le permite llevar a cabo actualizaciones de la configuración en las instancias de Amazon EC2 que se están ejecutando a través de la acción de la API UpdateStack.
Para obtener más información, consulte el tutorial Actualización de una pila de CloudFormation en la Guía del usuario de AWS CloudFormation.
Temas
Sintaxis
cfn-hup --config|-c config.dir \ --no-daemon \ --verbose|-v
Opciones
| Nombre | Descripción | Obligatorio |
|---|---|---|
|
|
Especifica la ruta que el script |
No |
|
|
Especifique esta opción para ejecutar el script |
No |
|
|
Especifique esta opción para utilizar el modo detallado. |
No |
Archivo de configuración cfn-hup.conf
En el archivo cfn-hup.conf se almacena el nombre de la pila y las credenciales de AWS a las cuales se dirige el daemon cfn-hup.
El archivo cfn-hup.conf usa el formato siguiente:
[main] stack=<stack-name-or-id>
| Nombre | Descripción | Obligatorio |
|---|---|---|
|
|
Un nombre de pila o ID. Tipo: cadena |
Sí |
|
|
Un archivo de credencial exclusivo del propietario, en el mismo formato utilizado para las herramientas de líneas de comandos. Tipo: cadena Condición: el parámetro |
No |
|
|
El nombre de un rol de IAM asociado a la instancia. Tipo: cadena |
No |
|
|
Nombre de la Región de AWS que contiene la pila. Ejemplo: us-east-2 |
No |
|
|
Este valor se puede especificar con o sin 0 inicial. En ambos casos, se interpreta como un número octal (similar al comando Tipo: número entero octal entre Valor predeterminado: |
No |
|
|
El intervalo usado para comprobar si hay cambios en los metadatos de recursos en cuestión de minutos. Tipo: entero Valor predeterminado: |
No |
|
|
Especifica si se debe utilizar el registro detallado. Tipo: Booleano Valor predeterminado: |
No |
hooks.confArchivo de configuración de la
Las acciones del usuario a las que el daemon cfn-hup llama periódicamente se definen en el archivo de configuración hooks.conf. El archivo hooks.conf usa el formato siguiente:
[hookname] triggers=post.addorpost.updateorpost.remove path=Resources.<logicalResourceId>(.Metadataor.PhysicalResourceId)(.<optionalMetadatapath>) action=<arbitrary shell command>runas=<runas user>
Cuando se ejecuta la operación, se ejecuta en una copia del entorno actual (en el que se encuentra cfn-hup), con CFN_OLD_METADATA establecido en el valor de metadatos anterior especificado por ruta y CFN_NEW_METADATA establecido en el valor actual.
El archivo de configuración de enlaces se carga solo al iniciarse el daemon cfn-hup, de manera que los nuevos enlaces necesitarán que se reinicie el daemon. Se almacena una memoria caché de los valores de metadatos anteriores en /var/lib/cfn-hup/data/metadata_db, pero puede eliminarla para forzar cfn-hup y que se ejecuten de nuevo todas las acciones post.add.
| Nombre | Descripción | Obligatorio |
|---|---|---|
|
|
Un nombre único para este enlace. Tipo: cadena |
Sí |
|
|
Una lista delimitada por comas de condiciones para detectar. Valores válidos: Ejemplo de: |
Sí |
|
|
La ruta al objeto de los metadatos. Admite una ruta de profundidad arbitraria dentro del bloque de metadatos. Opciones de formato de ruta
|
Sí |
|
|
Un comando de shell arbitrario que se ejecuta como determinado. |
Sí |
|
|
Usuario con el que ejecutar los comandos. |
Sí |
Directorio hooks.d
Para permitir la composición de varias aplicaciones que implementan enlaces de notificación de cambios, cfn-hup admite un directorio denominado hooks.d que se encuentra en el directorio de configuración de enlaces. Puede meter uno o varios archivos de configuración de enlaces adicionales en el directorio hooks.d. Los archivos de enlaces adicionales deben utilizar el mismo formato que el archivo hooks.conf.
El daemon cfn-hup analiza y carga cada archivo en este directorio. Si algún enlace del directorio hooks.d tiene el mismo nombre que un enlace de hooks.conf, los enlaces se fusionarán (es decir, hooks.d sobrescribirá a hooks.conf para cualquier valor que se especifique en ambos archivos).
Ejemplos
En el siguiente ejemplo, CloudFormation desencadena el archivo de enlaces cfn-auto-reloader.conf cuando cambia el recurso AWS::CloudFormation::Init que está asociado al recurso LaunchConfig.
JSON
... "LaunchConfig": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "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: 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" ...
Recursos relacionados
También puede visitar nuestro repositorio de GitHub para descargar las plantillas de ejemplo que usan cfn-hup, entre las que se incluyen las siguientes.