cfn-hup - AWS CloudFormation

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

Beschreibung

Der cfn-hup Helper ist ein Daemon, der Änderungen an Ressourcen-Metadaten erkennt und benutzerspezifische Aktionen ausführt, wenn eine Änderung erkannt wird. Hierdurch können Sie über die API-Aktion UpdateStack Konfigurations-Aktualisierungen an Ihren laufenden Amazon-EC2-Instances vornehmen.

Syntax

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

Optionen

Name Beschreibung Erforderlich

--config|-c config.dir

Gibt den Pfad an, in dem das cfn-hup Script 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

Wählen Sie diese Option, um das cfn-hup-Skript 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 Anmeldeinformationen, auf die der cfn-hup-Daemon abzielt.

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

[main] stack=<stack-name-or-id>
Name Beschreibung 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 der Region, die den Stack enthält. AWS

Beispiel

Nein

umask

Die umask, die 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 von 022 maskiert gruppenspezifische und globale Schreibberechtigungen, sodass vom Daemon cfn-hup erstellte Dateien standardmäßig nicht von der Gruppe oder global beschrieben werden können. 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 die cfn-hup-Daemon regelmäßig aufruft, sind in der Konfigurationsdatei hooks.conf festgelegt. Die Datei hooks.conf 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>

Der Vorgang wird bei Ausführung in einer Kopie der aktuellen Umgebung (in der sich cfn-hup befindet) ausgeführt; CFN_OLD_METADATA ist hierbei auf den vorherigen, durch den Pfad angegebenen Metadatenwert gesetzt, CFN_NEW_METADATA auf den aktuellen Wert.

Die Hook-Konfigurationsdatei wird nur beim Start des cfn-hup-Daemon geladen; für neue Hooks muss der Demon also neu gestartet werden. Ein Cache der vorherigen Metadaten wird unter /var/lib/cfn-hup/data/metadata_db gespeichert— Sie können diesen Cache löschen, um cfn-hup zu zwingen, alle post.add-Aktionen erneut auszuführen.

Name Beschreibung 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-Instance).

  • Ressourcen. < LogicalResourceId > .Metadata (.optionaler Pfad) — Überwachen Sie 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, als der die Befehle ausgeführt werden sollen. Cfn-hup verwendet den su-Befehl zum Wechseln des Benutzers.

Ja

hooks.d-Verzeichnis

Um die Zusammenfassung mehrerer Anwendungen mit Änderungsbenachrichtungs-Hooks zu unterstützen, unterstützt cfn-hup ein Verzeichnis namens hooks.d, das sich im Hooks-Konfigurationsverzeichnis befindet. Im hooks.d-Verzeichnis können Sie eine oder mehrere weitere Hook-Konfigurationsdateien ablegen. Diese zusätzlichen Hooks-Dateien müssen dasselbe Layout wie die Datei hooks.conf nutzen.

Der cfn-hup-Daemon verarbeitet und lädt jede Datei in dieses Verzeichnis. Wenn ein Hook im hooks.d-Verzeichnis denselben Namen wie ein Hook in hooks.conf aufweist, werden die Hooks zusammengeführt (das bedeutet, dass hooks.d bei Werten, die bei beiden Daten festgelegt sind, hooks.conf überschreibt).

Beispiel

Löst im folgenden Vorlagenausschnitt die cfn-auto-reloader.conf Hooks-Datei CloudFormation aus, wenn Sie die Ressource ändern, die der AWS::CloudFormation::Init Ressource zugeordnet ist. 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" ...

Weiteres Beispiel

Eine Beispielvorlage finden Sie hier: Bereitstellen von Anwendungen auf Amazon EC2 mit AWS CloudFormation.