cfn-hup - AWS CloudFormation

Dies ist das neue CloudFormation Template Reference Guide. Bitte aktualisieren Sie Ihre Lesezeichen und Links. Hilfe zu den ersten CloudFormation Schritten finden Sie im AWS CloudFormation Benutzerhandbuch.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

cfn-hup

Der cfn-hup -Helfer ist ein Daemon, der Änderungen in den Ressourcen-Metadaten erkennt und benutzerdefinierte Aktionen ausführt, wenn eine Änderung festgestellt wird. Auf diese Weise können Sie über die UpdateStack API-Aktion Konfigurationsaktualisierungen an Ihren laufenden EC2 Amazon-Instances vornehmen.

Weitere Informationen finden Sie im Tutorial „Einen CloudFormation Stack aktualisieren“ im AWS CloudFormation Benutzerhandbuch.

Syntax

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

Optionen

Name Description Erforderlich

--config|-c config.dir

Gibt den Pfad an, in dem das Skript cfn-hup nach den Verzeichnissen cfn-hup.conf und hooks.d sucht. Unter Windows ist der Standardpfad system_drive\cfn. Unter Linux ist der Standardpfad /etc/cfn.

Nein

--no-daemon

Geben Sie diese Option an, um das Skript cfn-hup einmal auszuführen und zu beenden.

Nein

-v, --verbose

Wählen Sie diese Option, um den Verbose-Modus zu verwenden.

Nein

cfn-hup.conf Konfigurationsdatei

Die Datei cfn-hup.conf speichert den Namen des Stacks und die AWS Zugangsdaten, die der cfn-hup Daemon anvisiert.

Die Datei cfn-hup.conf verwendet das folgende Format:

[main] stack=<stack-name-or-id>
Name Description Erforderlich

stack

Einen Stack-Namen oder eine ID.

Typ: Zeichenfolge

Ja

credential-file

Eine auf Besitzer beschränkte Anmeldeinformations-Datei im selben Format wie die Befehlszeilen-Tools.

Typ: Zeichenfolge

Bedingung: Der Parameter role hat Vorrang vor diesem Parameter.

Nein

role

Der Name einer IAM-Rolle, die mit dieser Instance verknüpft ist.

Typ: Zeichenfolge

Nein

region

Der Name des Stacks AWS-Region , der den Stapel enthält.

Example: us-east-2

Nein

umask

Das umask , das vom cfn-hup -Daemon verwendet wird.

Dieser Wert kann mit oder ohne führende 0 angegeben werden. In beiden Fällen wird er es als Oktalzahl interpretiert (ähnlich dem Linux-Befehl umask). Dieser Parameter hat in Windows keine Wirkung.

Typ: Oktale ganze Zahl zwischen 0 und 0777

Standard: 022, Version 1.4–22 und höher. Der Standardwert 022 maskiert die Schreibrechte für Gruppen und die Welt, so dass Dateien, die vom cfn-hup -Daemon erstellt werden, standardmäßig nicht für Gruppen oder die Welt schreibbar sind. Der Standardwert für Versionen 1.4–21 und früher ist 0. Dieser Wert maskiert nichts.

Nein

interval

Das Intervall in Minuten, wonach auf Änderungen an den Ressourcen-Metadaten geprüft werden soll.

Typ: Ganzzahl

Standardwert: 15

Nein

verbose

Gibt an, ob die ausführliche Protokollierung verwendet werden soll.

Typ: Boolesch

Standardwert: false

Nein

hooks.conf Konfigurationsdatei

Die Benutzeraktionen, die der cfn-hup -Daemon regelmäßig aufruft, werden in der Konfigurationsdatei hooks.conf definiert. Die hooks.conf -Datei verwendet das folgende -Format:

[hookname] triggers=post.add or post.update or post.remove path=Resources.<logicalResourceId> (.Metadata or .PhysicalResourceId)(.<optionalMetadatapath>) action=<arbitrary shell command> runas=<runas user>

Wenn die Operation ausgeführt wird, wird sie in einer Kopie der aktuellen Umgebung (in der sich cfn-hup befindet) ausgeführt, wobei CFN_OLD_METADATA auf den vorherigen, durch path angegebenen Metadatenwert und CFN_NEW_METADATA auf den aktuellen Wert gesetzt wird.

Die Konfigurationsdatei für die Hooks wird nur beim Start des cfn-hup -Daemons geladen, so dass neue Hooks einen Neustart des Daemons erfordern. Bei /var/lib/cfn-hup/data/metadata_dbwird ein Cache mit den vorherigen Metadatenwerten gespeichert - Sie können diesen Cache löschen, um cfn-hup zu zwingen, alle post.add -Aktionen erneut auszuführen.

Name Description Erforderlich

hookname

Eine eindeutige Bezeichnung für diesen Hook.

Typ: Zeichenfolge

Ja

triggers

Eine durch Komma getrennte Liste der zu erkennenden Bedingungen.

Gültige Werte: post.add, post.update, oder post.remove

Beispiel: post.add, post.update

Ja

path

Der Pfad zum Metadatenobjekt. Unterstützt einen willkürlich tiefen Pfad im Metadaten-Block.

Pfad-Formatoptionen
  • Ressourcen. <LogicalResourceId>— überwacht den Zeitpunkt der letzten Aktualisierung der Ressource, der bei jeder Änderung an der Ressource ausgelöst wird.

  • Ressourcen. <LogicalResourceId>. PhysicalResourceId— überwacht die physische ID der Ressource und wird nur ausgelöst, wenn sich die zugehörige Ressourcenidentität ändert (z. B. bei einer neuen EC2 Instanz).

  • Ressourcen. <LogicalResourceId>.Metadata (.optional path) — überwacht die Metadaten einer Ressource auf Änderungen (ein Metadaten-Unterpfad kann bis zu einer beliebigen Tiefe angegeben werden, um bestimmte Werte zu überwachen).

Ja

action

Ein frei wählbarer Shell-Befehl, der wie angegeben ausgeführt wird.

Ja

runas

Ein Benutzer, unter dem die Befehle ausgeführt werden sollen. cfn-hup verwendet den Befehl su, um zu diesem Benutzer zu wechseln.

Ja

hooks.dVerzeichnis

Um die Zusammenstellung mehrerer Anwendungen zu unterstützen, die Änderungsbenachrichtigungs-Hooks einsetzen, unterstützt cfn-hup ein Verzeichnis namens hooks.d , das sich im Konfigurationsverzeichnis für die Hooks befindet. Sie können eine oder mehrere zusätzliche Hooks-Konfigurationsdateien im Verzeichnis hooks.d ablegen. Die zusätzlichen Hooks-Dateien müssen das gleiche Layout wie die hooks.conf -Datei verwenden.

Der cfn-hup -Daemon parst und lädt jede Datei in diesem Verzeichnis. Wenn ein Hook im Verzeichnis hooks.d den gleichen Namen hat wie ein Hook in hooks.conf, werden die Hooks zusammengeführt (d.h. hooks.d überschreibt hooks.conf für alle Werte, die in beiden Dateien angegeben sind).

Beispiele

In den folgenden Beispielen CloudFormation wird die cfn-auto-reloader.conf Hooks-Datei ausgelöst, wenn Sie die AWS::CloudFormation::Init Ressource ändern, die der LaunchConfig Ressource zugeordnet ist.

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

Sie können auch unser GitHub Repository besuchen, um Beispielvorlagen herunterzuladen, die verwendencfn-hup, einschließlich der folgenden Vorlagen.