cfn-hup - AWS CloudFormation

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-huphelper è 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.

Sintassi

cfn-hup --config|-c config.dir \ --no-daemon \ --verbose|-v

Opzioni

Nome Descrizione Richiesto

--config|-c config.dir

Speciifica il percorso in cui lo cfn-hup script cerca cfn-hup.conf e le hooks.d directory. In Windows, il percorso predefinito è system_drive\cfn. In Linux, il percorso predefinito è /etc/cfn.

No

--no-daemon

Specificate questa opzione per eseguire lo cfn-hup script una volta e uscire.

No

-v, --verbose

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

stack

Un nome o ID dello stack.

Tipo: Stringa

credential-file

Un file delle credenziali solo del proprietario, nello stesso formato utilizzato per gli strumenti a riga di comando.

Tipo: Stringa

Condizione: il parametro role sostituisce questo parametro.

No

role

Il nome di un ruolo IAM associato all'istanza.

Tipo: Stringa

No

region

Il nome della AWS regione che contiene lo stack.

Esempio

No

umask

umaskUsato dal demone. cfn-hup

Questo valore può essere specificato con o senza 0 iniziale. In entrambi i casi, viene interpretato come un numero ottale (simile al comando umask di Linux). Questo parametro non ha effetto su Windows.

Tipo: intero ottale compreso tra 0 e 0777

Default: 022, versione 1.4–22 e superiore. Il valore predefinito delle 022 maschere raggruppa i permessi di scrittura e quelli mondiali, quindi per impostazione predefinita i file creati dal cfn-hup demone non sono scrivibili in gruppo o in tutto il mondo. Il valore predefinito per le versioni 1.4-21 e precedenti è 0, che non maschera nulla.

No

interval

L'intervallo utilizzato per verificare la presenza di modifiche apportate ai metadati della risorsa in pochi minuti.

Tipo: integer

Default: 15

No

verbose

Specifica l'utilizzo della registrazione verbose.

Tipo: Booleano

Default: false

No

hooks.conffile 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.update or post.remove path=Resources.<logicalResourceId> (.Metadata or .PhysicalResourceId)(.<optionalMetadatapath>) action=<arbitrary shell command> runas=<runas user>

Quando l'operazione viene eseguita, viene eseguita in una copia dell'ambiente corrente (cfn-hupovvero 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

hookname

Un nome univoco per questo hook.

Tipo: Stringa

triggers

Un elenco di condizioni delimitate da virgola da rilevare.

Valori validi: post.add, post.update o post.remove

Esempio: post.add, post.update

path

Il percorso verso l'oggetto metadati. Supporta un percorso profondo arbitrariamente all'interno del blocco di metadati.

Opzioni del formato del percorso
  • Risorse. <LogicalResourceId>— monitora l'ora dell'ultimo aggiornamento della risorsa, attivando qualsiasi modifica alla risorsa.

  • Risorse. <LogicalResourceId>. PhysicalResourceId— monitora l'ID fisico della risorsa, attivandolo solo quando l'identità della risorsa associata cambia (ad esempio una nuova EC2 istanza).

  • Risorse. <LogicalResourceId>.Metadata (.optional path): monitora i metadati di una risorsa per rilevare eventuali modifiche (un sottopercorso dei metadati può essere specificato a un livello arbitrariamente profondo per monitorare valori specifici).

action

Un comando shell arbitrario che viene eseguito in modo invariato.

runas

Un utente con cui eseguire i comandi. cfn-huputilizza il comando su per passare all'utente.

hooks.ddirectory

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" ...

Per un modello di esempio, consulta Deploying applications on Amazon EC2 with CloudFormation nella AWS CloudFormation User Guide.