Überschreiben von integrierten Vorlagen - AWS OpsWorks

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.

Überschreiben von integrierten Vorlagen

Wichtig

Der AWS OpsWorks Stacks Dienst hat am 26. Mai 2024 das Ende seiner Lebensdauer erreicht und wurde sowohl für neue als auch für bestehende Kunden deaktiviert. Wir empfehlen Kunden dringend, ihre Workloads so bald wie möglich auf andere Lösungen zu migrieren. Wenn Sie Fragen zur Migration haben, wenden Sie sich an das AWS Support Team auf AWS re:POST oder über den AWS Premium-Support.

Anmerkung

Dieses Thema bezieht sich nur auf Linux-Stacks. Auf Windows-Stacks können Sie integrierte Vorlagen nicht überschreiben.

Die in AWS OpsWorks Stacks integrierten Rezepte verwenden Vorlagen, um Dateien auf Instanzen zu erstellen, hauptsächlich Konfigurationsdateien für Server wie Apache. Zum Beispiel verwenden die apache2-Rezepte die Vorlage apache2.conf.erb, um die Hauptkonfigurationsdatei des Apache-Servers zu erstellen, httpd.conf (Amazon Linux) oder apache2.conf (Ubuntu).

Die meisten Konfigurationseinstellungen in diesen Vorlagen werden durch Attribute abgebildet, daher lassen sich Konfigurationsdateien am besten durch Überschreiben der entsprechenden integrierten Attribute anpassen. Ein Beispiel finden Sie unter Überschreiben von integrierten Attributen. Wenn Sie jedoch Einstellungen anpassen möchten, für die es keine entsprechenden integrierten Attribute gibt oder die in der Vorlage gar nicht vorhanden sind, müssen Sie die Vorlage selbst überschreiben. In diesem Thema wird beschrieben, wie Sie eine integrierte Vorlage überschreiben, um eigene Apache-Konfigurationseinstellungen festzulegen.

Sie können benutzerdefinierte Fehlermeldungen für Apache hinzufügen, indem Sie ErrorDocument-Einstellungen in der Datei httpd.conf einfügen. apache2.conf.erb enthält nur einige auskommentierte Beispiele, wie Sie im Folgenden sehen können:

... # # Customizable error responses come in three flavors: # 1) plain text 2) local redirects 3) external redirects # # Some examples: #ErrorDocument 500 "The server made a boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html ...

Da diese Einstellungen in Kommentaren fest programmiert sind, können Sie durch Überschreiben der Attribute keine benutzerdefinierten Werte festlegen. Sie müssen die Vorlage selbst überschreiben. Anders als bei Attributen gibt es jedoch keine Möglichkeit, eine Vorlagendatei nur teilweise zu überschreiben. Erstellen Sie ein benutzerdefiniertes Rezeptbuch mit demselben Namen wie die integrierte Version, kopieren Sie die Vorlagendatei in dasselbe Unterverzeichnis und passen Sie die Datei an Ihre Bedürfnisse an. In diesem Thema erfahren Sie, wie Sie die Vorlage apache2.conf.erb überschreiben, um für den Fehler 500 eine benutzerdefinierte Fehlermeldung anzuzeigen. Allgemeine Erläuterungen zum Überschreiben von Vorlagen finden Sie unter Verwenden von benutzerdefinierten Vorlagen.

Wichtig

Wenn Sie eine integrierte Vorlage überschreiben, verwenden integrierte Rezepte statt der integrierten Version Ihre angepasste Version der Vorlage. Wenn AWS OpsWorks Stacks die integrierte Vorlage aktualisiert, ist die benutzerdefinierte Vorlage nicht mehr synchron und funktioniert möglicherweise nicht mehr richtig. AWS OpsWorks Stacks nimmt solche Änderungen nicht oft vor, und wenn sich eine Vorlage ändert, listet AWS OpsWorks Stacks die Änderungen auf und gibt Ihnen die Möglichkeit, auf eine neue Version zu aktualisieren. Wir empfehlen Ihnen, auf Änderungen am AWS OpsWorks  Stacks-Repository zu achten und Ihre benutzerdefinierte Vorlage gegebenenfalls manuell zu aktualisieren. Das Repository enthält eigene Verzeichnisse für jede unterstützte Chef-Version. Achten Sie daher darauf, das richtige Verzeichnis zu verwenden.

Erstellen Sie zunächst ein benutzerdefiniertes Rezeptbuch.

So erstellen Sie das Rezeptbuch
  1. Erstellen Sie in dem Verzeichnis opsworks_cookbooks ein Rezeptbuchverzeichnis namens apache2 und öffnen Sie es anschließend. Damit das benutzerdefinierte Rezeptbuch integrierte Vorlagen überschreiben kann, muss es denselben Namen wie das integrierte Rezeptbuch haben, in diesem Beispiel also apache2.

    Anmerkung

    Falls Sie die Anleitung Überschreiben von integrierten Attributen bereits durchgearbeitet haben, können Sie das Rezeptbuch apache2 aus diesem Beispiel übernehmen und Schritt 2 überspringen.

  2. Erstellen Sie eine Datei metadata.rb mit folgendem Inhalt und speichern Sie sie im Verzeichnis apache2.

    name "apache2" version "0.1.0"
  3. Erstellen Sie im Verzeichnis apache2 ein Verzeichnis templates/default.

    Anmerkung

    Das templates/default Verzeichnis funktioniert für Amazon Linux-Instances, die die apache2.conf.erb Standardvorlage verwenden. Ubuntu 14.04-Instances verwenden eine für das Betriebssystem spezifische Vorlage apache2.conf.erb, die sich im Verzeichnis templates/ubuntu-14.04 befindet. Wenn Sie Ihre Änderungen auch auf Ubuntu 14.04-Instances verwenden möchten, müssen Sie auch diese Vorlage überschreiben.

  4. Kopieren Sie die integrierte Vorlage apache2.conf.erb in Ihr Verzeichnis templates/default. Öffnen Sie die Vorlagendatei, entfernen Sie die Kommentarzeichen der Zeile ErrorDocument 500 und geben Sie die folgende benutzerdefinierte Fehlermeldung ein:

    ... ErrorDocument 500 "A custom error message." #ErrorDocument 404 /missing.html ...
  5. Erstellen Sie ein .zip Archiv opsworks_cookbooks mit Namen opsworks_cookbooks.zip und laden Sie die Datei dann in einen Amazon Simple Storage Service (Amazon S3) -Bucket hoch. Machen Sie das Archiv der Einfachheit halber öffentlich. Notieren Sie sich die URL des Archivs. Sie können Ihre Kochbücher auch in einem privaten Amazon S3 S3-Archiv oder in anderen Repository-Typen speichern. Weitere Informationen finden Sie unter Rezeptbuch-Repositorys.

    Inhalte, die an Amazon-S3-Buckets geliefert werden, können Kundeninhalte enthalten. Weitere Informationen zum Entfernen sensibler Daten finden Sie unter Wie entleere ich einen S3 Bucket? oder Wie lösche ich einen S3 Bucket?.

Anmerkung

Der Einfachheit halber wird in diesem Beispiel eine fest programmierte Meldung in die Vorlage eingefügt. Um diese zu ändern, müssen Sie die Vorlage ändern und das Rezeptbuch erneut installieren. Wenn Sie flexibler sein möchten, können Sie ein benutzerdefiniertes Standardattribut für die Fehlermeldung in der Attributdatei des benutzerdefinierten Rezeptbuchs customize.rb definieren und den Wert dieses Attributs ErrorDocument 500 zuweisen. Wenn Sie das Attribut beispielsweise [:apache][:custom][:error500] nennen, sieht die entsprechende Zeile in der Datei apache2.conf.erb etwa folgendermaßen aus:

... ErrorDocument 500 <%= node[:apache][:custom][:error500] %> #ErrorDocument 404 /missing.html ...

Nun können Sie die benutzerdefinierte Fehlermeldung jederzeit ändern, indem Sie [:apache][:custom][:error500] überschreiben. Wenn Sie das Attribut mit benutzerdefinierter JSON überschreiben, müssen Sie das Rezeptbuch überhaupt nicht bearbeiten.

Erstellen Sie einen Stack und installieren Sie das Rezeptbuch, um die benutzerdefinierte Vorlage zu verwenden.

So verwenden Sie benutzerdefinierte Vorlagen
  1. Öffnen Sie die AWS OpsWorks  Stacks-Konsole und wählen Sie dann Add Stack (Stack hinzufügen) aus.

  2. Legen Sie die folgenden Standardeinstellungen fest:

    • Name — ApacheTemplate

    • Region — USA West (Oregon)

    • Standard-SSH-Schlüssel — Ein Amazon Elastic Compute Cloud (Amazon EC2) -Schlüsselpaar

      Wenn Sie ein Amazon EC2 EC2-Schlüsselpaar erstellen müssen, finden Sie weitere Informationen unter Amazon EC2 EC2-Schlüsselpaare. Das Schlüsselpaar muss sich in derselben AWS-Region befinden wie die Instance.

    Wählen Sie Advanced >> (Erweiterte Einstellungen >>) und dann Use custom Chef cookbooks (Benutzerdefinierte Rezeptbücher verwenden) aus, um die folgenden Einstellungen anzugeben:

    • Repository-Typ — HTTP-Archiv

    • Repository-URL — Die URL des Kochbucharchivs, die Sie zuvor aufgezeichnet haben

    Übernehmen Sie für die anderen Einstellungen die Standardwerte und wählen Sie Add Stack aus, um den Stack zu erstellen.

  3. Wählen Sie Ebene hinzufügen und fügen Sie dem Stack dann eine Java App Server-Ebene mit Standardeinstellungen hinzu.

  4. Fügen Sie dem Layer eine 24/7-Instance mit den Standardeinstellungen hinzu und starten Sie sie.

    Für dieses Beispiel ist eine t2.Micro-Instance ausreichend.

  5. Nachdem die Instance online ist, melden Sie sich mit SSH dort an. Die Datei httpd.conf ist im Verzeichnis /etc/httpd/conf. Die Datei sollte nun Ihre benutzerdefinierte Einstellung für ErrorDocument enthalten, die etwa folgendermaßen aussieht:

    ... # Some examples: ErrorDocument 500 "A custom error message." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html ...