Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
cfn-hup
L'cfn-hup
helper è un demone che rileva le modifiche nei metadati delle risorse ed esegue azioni specificate dall'utente quando viene rilevata una modifica. Ciò consente di effettuare aggiornamenti di configurazione sulle EC2 istanze Amazon in esecuzione tramite l'azione UpdateStack
API.
Argomenti
Sintassi
cfn-hup --config|-c config.dir \ --no-daemon \ --verbose|-v
Opzioni
Nome | Descrizione | Richiesto |
---|---|---|
|
Speciifica il percorso in cui lo |
No |
|
Specificate questa opzione per eseguire lo |
No |
|
Specifica questa opzione per utilizzare la modalità dettagliata (verbose). |
No |
File di configurazione cfn-hup.conf
Il cfn-hup.conf
file memorizza il nome dello stack e le AWS
credenziali a cui il cfn-hup
demone si rivolge.
Il cfn-hup.conf
file utilizza il seguente formato:
[main] stack=
<stack-name-or-id>
Nome | Descrizione | Richiesto |
---|---|---|
|
Un nome o ID dello stack. Tipo: Stringa |
Sì |
|
Un file delle credenziali solo del proprietario, nello stesso formato utilizzato per gli strumenti a riga di comando. Tipo: Stringa Condizione: il parametro |
No |
|
Il nome di un ruolo IAM associato all'istanza. Tipo: Stringa |
No |
|
Il nome della AWS regione che contiene lo stack. Esempio |
No |
|
Questo valore può essere specificato con o senza 0 iniziale. In entrambi i casi, viene interpretato come un numero ottale (simile al comando Tipo: intero ottale compreso tra Default: |
No |
|
L'intervallo utilizzato per verificare la presenza di modifiche apportate ai metadati della risorsa in pochi minuti. Tipo: integer Default: |
No |
|
Specifica l'utilizzo della registrazione verbose. Tipo: Booleano Default: |
No |
hooks.conf
file di configurazione
Le azioni dell'utente che il cfn-hup
demone richiama periodicamente sono definite nel hooks.conf
file di configurazione. Il hooks.conf
file utilizza il seguente formato:
[hookname] triggers=post.add
or
post.updateor
post.remove path=Resources.<logicalResourceId>
(.Metadataor
.PhysicalResourceId)(.<optionalMetadatapath>
) action=<arbitrary shell command>
runas=<runas user>
Quando l'operazione viene eseguita, viene eseguita in una copia dell'ambiente corrente (cfn-hup
ovvero in), CFN_OLD_METADATA
impostata sul valore dei metadati precedente specificato dal percorso e CFN_NEW_METADATA
impostata sul valore corrente.
Il file di configurazione degli hook viene caricato solo all'avvio del cfn-hup
demone, quindi i nuovi hook richiederanno il riavvio del demone. Una cache dei valori dei metadati precedenti è memorizzata in/var/lib/cfn-hup/data/metadata_db
: è possibile eliminare questa cache per forzare l'esecuzione di nuovo tutte le azioni. cfn-hup
post.add
Nome | Descrizione | Richiesto |
---|---|---|
|
Un nome univoco per questo hook. Tipo: Stringa |
Sì |
|
Un elenco di condizioni delimitate da virgola da rilevare. Valori validi: Esempio: |
Sì |
|
Il percorso verso l'oggetto metadati. Supporta un percorso profondo arbitrariamente all'interno del blocco di metadati. Opzioni del formato del percorso
|
Sì |
|
Un comando shell arbitrario che viene eseguito in modo invariato. |
Sì |
|
Un utente con cui eseguire i comandi. |
Sì |
hooks.d
directory
Per supportare la composizione di diverse applicazioni che distribuiscono gli hook di notifica delle modifiche, cfn-hup
supporta una directory denominata hooks.d
che si trova nella directory di configurazione degli hook. È possibile inserire uno o più file di configurazione degli hook aggiuntivi nella directory. hooks.d
I file degli hook aggiuntivi devono utilizzare lo stesso layout del hooks.conf
file.
Il cfn-hup
demone analizza e carica ogni file in questa directory. Se qualche hook nella hooks.d
directory ha lo stesso nome di un hook inhooks.conf
, gli hook verranno uniti (il che significa che hooks.d
verranno sovrascritti hooks.conf
per tutti i valori specificati da entrambi i file).
Esempi
Negli esempi seguenti, CloudFormation attiva il file cfn-auto-reloader.conf
hooks quando si modifica la AWS::CloudFormation::Init
risorsa associata alla risorsa. LaunchConfig
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" ...
Risorse correlate
Per un modello di esempio, consulta Deploying applications on Amazon EC2 with CloudFormation nella AWS CloudFormation User Guide.