cfn-init - 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-init

Beschreibung

Das Hilfsskript cfn-init liest Vorlagen-Metadaten aus dem AWS::CloudFormation::Init-Schlüssel und agiert entsprechend, um:

  • Ruft Metadaten ab und analysiert sie von CloudFormation

  • Pakete installieren

  • Dateien auf die Festplatte zu schreiben

  • Services zu aktivieren/deaktivieren und zu starten/stoppen

Anmerkung

Wenn Sie cfn-init zum Aktualisieren einer vorhandenen Datei verwenden, wird eine Sicherungskopie der ursprünglichen Datei im selben Verzeichnis mit der Erweiterung.bak angelegt. Wenn Sie beispielsweise /path/to/file_name aktualisieren, werden bei der Aktion zwei Dateien erzeugt: /path/to/file_name.bak enthält den ursprünglichen Inhalt der Datei, /path/to/file_name den aktualisierten Inhalt.

Informationen zu den Vorlagen-Metadaten finden Sie unter AWS::CloudFormation::Init.

Anmerkung

cfn-init erfordert keine Anmeldeinformationen; die Optionen --access-key, --secret-key, --role oder --credential-file müssen also nicht verwendet werden. Wenn jedoch keine Anmeldeinformationen angegeben sind, wird die Stack-Mitgliedschaft CloudFormation geprüft und der Umfang des Aufrufs auf den Stack beschränkt, zu dem die Instanz gehört.

Syntax

cfn-init --stack|-s stack.name.or.id \ --resource|-r logical.resource.id \ --region region \ --access-key access.key \ --secret-key secret.key \ --role rolename \ --credential-file|-f credential.file \ --configsets|-c config.sets \ --url|-u service.url \ --http-proxy HTTP.proxy \ --https-proxy HTTPS.proxy \ --verbose|-v

Optionen

Name Beschreibung Erforderlich

-s, --stack

Stackname oder Stack-ID.

Typ: Zeichenfolge

Standard: Keiner

Beispiel: --stack { "Ref" : "AWS::StackName" },

Ja

-r, --resource

Die logische Ressourcen-ID der Ressource, die die Metadaten enthält.

Typ: Zeichenfolge

Beispiel: --resource WebServerHost

Ja

--region

Der zu verwendende CloudFormation regionale Endpunkt.

Typ: Zeichenfolge

Standardwert: us-east-1

Beispiel: --region ", { "Ref" : "AWS::Region" },

Nein

--access-key

AWS Zugriffsschlüssel für ein Konto mit DescribeStackResource Anrufberechtigung CloudFormation. Der Dateiparameter Anmeldeinformationen hat Vorrang vor diesem Parameter.

Typ: Zeichenfolge

Nein

--secret-key

AWS geheimer Zugriffsschlüssel, der dem angegebenen AWS Zugriffsschlüssel entspricht.

Typ: Zeichenfolge

Nein

--role

Der Name einer IAM Rolle, die der Instanz zugeordnet ist.

Typ: Zeichenfolge

Bedingun: Der Dateiparameter Anmeldeinformationen hat Vorrang vor diesem Parameter.

Nein

-f, --credential-file

Eine Datei mit einem geheimen Zugriffsschlüssel und einem Zugriffsschlüssel. Der Dateiparameter Anmeldeinformationen hat Vorrang vor den Parametern Rolle, Zugriffschlüssel und geheimer Zugriffschlüssel.

Typ: Zeichenfolge

Nein

-c, --configsets

Eine durch Kommas getrennte Liste der auszuführenden configsets (in Reihenfolge).

Typ: Zeichenfolge

Standardwert: default

Nein

-u, --url

Der zu verwendende CloudFormation Endpunkt.

Typ: Zeichenfolge

Nein

--http-proxy

Ein HTTP Proxy (nicht-SSL). Verwenden Sie das folgende Format: http://user:password@host:port

Typ: Zeichenfolge

Nein

--https-proxy

Ein HTTPS Proxy. Verwenden Sie das folgende Format: https://user:password@host:port

Typ: Zeichenfolge

Nein

-v, --verbose

Ausführliche Ausgabe. Dies ist nützlich zum Debuggen, wenn cfn-init nicht initialisiert.

Anmerkung

Um Initialisierungsereignisse zu debuggen, sollten Sie die Option aktivieren DisableRollback . Sie können dies tun, indem Sie in der CloudFormation Konsole die Option Erweiterte Optionen anzeigen auswählen und dann Rollback bei Fehler auf Nein setzen. Sie können dann SSH in die Konsole gehen und die Protokolle unter /var/log/cfn-init.log lesen.

Nein

-h, --help

Zeigt eine Hilfsnachricht an und wird beendet.

Nein

Beispiel

Beispiel für Amazon Linux

Die folgenden Codefragmente zeigen die UserData Eigenschaft einer Instanz, die das der Ressource zugeordnete Konfigurationsset ausführtEC2. InstallAndRun WebServerInstance

Eine vollständige Beispielvorlage finden Sie in Stellen Sie Anwendungen auf Amazon bereit EC2.

Um die neueste Version aufzunehmen, fügen Sie yum install -y aws-cfn-bootstrap zu UserData hinzu.

JSON

UserData-Eigenschaft mit der intrinsischen Fn::Join-Funktion.

{ "UserData": { "Fn::Base64": { "Fn::Join": [ "", [ "#!/bin/bash -xe\n", "", "yum install -y aws-cfn-bootstrap", "/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref": "AWS::StackName" }, " --resource WebServerInstance ", " --configsets InstallAndRun ", " --region ", { "Ref": "AWS::Region" }, "\n" ] ] } } }

YAML

UserData-Eigenschaft mit der intrinsischen Fn::Join-Funktion.

UserData: !Base64 'Fn::Join': - '' - - | #!/bin/bash -xe - '' - yum install -y aws-cfn-bootstrap - '/opt/aws/bin/cfn-init -v ' - ' --stack ' - !Ref 'AWS::StackName' - ' --resource WebServerInstance ' - ' --configsets InstallAndRun ' - ' --region ' - !Ref 'AWS::Region' - |+

JSON

UserData-Eigenschaft mit der intrinsischen Fn::Sub-Funktion.

{ "UserData": { "Fn::Base64": { "Fn::Sub": [ "#!/bin/bash -x\n# Install the files and packages from the metadata\n/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}\n\n# Signal the status from cfn-init\n/opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}\n", {} ] } } }

YAML

UserData-Eigenschaft mit der intrinsischen Fn::Sub-Funktion.

UserData: !Base64 'Fn::Sub': - > #!/bin/bash -x # Install the files and packages from the metadata /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region} # Signal the status from cfn-init /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region} - {}