Erstellen eines benutzerdefinierten Tomcat-Server-Layers - 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.

Erstellen eines benutzerdefinierten Tomcat-Server-Layers

Wichtig

Das Tool AWS OpsWorks Stacks Der Dienst hat am 26. Mai 2024 das Ende seiner Nutzungsdauer 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 AWS Support Team ein AWS Re:post oder durch AWS Premium-Support.

Anmerkung

In diesem Thema wird beschrieben, wie ein benutzerdefinierter Layer für einen Linux-Stack implementiert wird. Die grundlegenden Prinzipien und ein Teil des Codes kann jedoch auch zur Implementierung benutzerdefinierter Layer für Windows-Stacks angepasst werden, vor allem diejenigen im Abschnitt über Anwendungsbereitstellung.

Die einfachste Art, nicht standardmäßige Pakete zu verwenden auf AWS OpsWorks Stacks-Instanzen bestehen darin, eine bestehende Ebene zu erweitern. Bei diesem Ansatz werden jedoch sowohl standardmäßige als auch nicht standardmäßige Pakete auf Instances des Layers installiert und ausgeführt, was nicht immer wünschenswert ist. Ein etwas komplexerer, aber leistungsstärkerer Ansatz besteht darin, einen benutzerdefinierten Layer zu implementieren. Dies gibt Ihnen die nahezu vollständige Kontrolle über die Instances des Layers, einschließlich der folgenden Aspekte:

  • Welche Pakete installiert werden

  • Wie jedes Paket konfiguriert ist

  • Wie Anwendungen von einem Repository der Instance bereitgestellt werden

Unabhängig davon, ob Sie die Konsole oder die Konsole verwendenAPI, erstellen und verwalten Sie eine benutzerdefinierte Ebene wie jede andere Ebene, wie unter beschriebenBenutzerspezifische Layers. Die integrierten Rezepte eines benutzerdefinierten Layers führen jedoch nur einige sehr grundlegende Aufgaben aus, wie z. B. das Installieren eines Ganglia-Clients zum Melden von Metriken an einen Ganglia-Master. Um die Instances eines benutzerdefinierten Layers mehr als minimal funktionsfähig zu machen, müssen Sie mindestens ein benutzerdefiniertes Rezeptbuch mit Chef-Rezepten und zugehörige Dateien implementieren, um die Aufgaben der Installation und Konfiguration von Paketen, der Bereitstellung von Anwendungen usw. auszuführen. Aber Sie müssen nicht notwendigerweise alles von Grund auf implementieren. Wenn Sie beispielsweise Anwendungen in einem der Standard-Repositorys speichern, können Sie die integrierten Bereitstellungsrezepte verwenden, um einen Großteil der Arbeit der Installation der Anwendungen auf den Instances des Layers zu verarbeiten.

Anmerkung

Wenn Sie noch nie mit Chef gearbeitet haben, lesen Sie zuerst das Tutorial Rezeptbücher 101. Es enthält eine Einführung in die Grundlagen der Implementierung von Rezeptbüchern, mit denen Sie die unterschiedlichsten Aufgaben ausführen können.

In der folgenden schrittweisen Anleitung wird beschrieben, wie Sie einen benutzerdefinierten Layer implementieren, der einen Tomcat-Anwendungsserver unterstützt. Der Layer basiert auf einem benutzerdefinierten Rezeptbuch mit dem Namen Tomcat. Es enthält Rezepte zum Verarbeiten von Paketinstallation, Bereitstellung usw. Die schrittweise Anleitung umfasst Auszüge aus dem Tomcat-Rezeptbuch. Sie können das komplette Kochbuch aus dem GitHub Repository herunterladen. Wenn Sie mit Opscode Chef nicht vertraut sind, sollten Sie zunächst Cookbooks und Rezepte lesen.

Anmerkung

AWS OpsWorks Stacks enthält eine Java App Server-Schicht mit vollem Funktionsumfang für den Produktionseinsatz. Der Zweck des Tomcat-Kochbuchs besteht darin, zu zeigen, wie benutzerdefinierte Ebenen implementiert werden. Daher unterstützt es nur eine eingeschränkte Version von Tomcat, die keine Funktionen wie enthält. SSL Ein Beispiel für eine Implementierung mit vollem Funktionsumfang finden Sie in dem integrierten Rezeptbuch opsworks_java.

Das Tomcat-Rezeptbuch unterstützt einen benutzerspezifischen Layer, dessen Instances die folgenden Eigenschaften aufweisen:

  • Sie unterstützen einen Tomcat-Anwendungsserver mit einem Apache-Frontend.

  • Tomcat ist so konfiguriert, dass Anwendungen mithilfe eines JDBC DataSource Objekts eine Verbindung zu einer separaten SQL My-Instanz herstellen können, die als Backend-Datenspeicher dient.

Das Rezeptbuch für dieses Projekt umfasst mehrere wichtige Komponenten:

  • Die Attributdatei enthält Konfigurationseinstellungen, die von den verschiedenen Rezepten verwendet werden.

  • Einrichtungsrezepte werden dem Setup-Lebenszyklusereignis des Layers zugewiesen. Sie werden ausgeführt, nachdem eine Instanz gestartet wurde, und führen Aufgaben wie das Installieren von Paketen und das Erstellen von Konfigurationsdateien aus.

  • Konfigurationsrezepte werden dem Configure-Lebenszyklusereignis des Layers zugewiesen. Sie werden ausgeführt, nachdem sich die Konfiguration des Stacks geändert hat — in erster Linie, wenn Instances online gehen oder offline gehen — und übernehmen alle erforderlichen Konfigurationsänderungen.

  • Bereitstellungsrezepte werden dem Deploy-Lebenszyklusereignis des Layers zugewiesen. Sie werden nach den Einrichtungsrezepten ausgeführt und wenn Sie eine Anwendung manuell bereitstellen, um den Code zu installieren und zugehörige Dateien auf den Instances eines Layers zu installieren, und verarbeiten die dazugehörigen Aufgaben, wie z. B. das Neustarten von Services.

Im letzten Abschnitt wird beschriebenErstellen eines Stacks und Ausführen einer Anwendung, wie Sie einen Stack erstellen, der eine benutzerdefinierte Ebene enthält, die auf dem Tomcat-Kochbuch basiert, und wie Sie eine einfache JSP Anwendung bereitstellen und ausführen, die Daten aus einer Datenbank vom Typ Meine SQL Datenbank anzeigt, die auf einer Instance ausgeführt wird, die zu einer separaten My-Ebene gehört. SQL

Anmerkung

Die Rezepte für das Tomcat-Kochbuch hängen von einigen ab AWS OpsWorks Stapelt integrierte Rezepte. Um den Ursprung der einzelnen Rezepte deutlich zu machen, werden in diesem Thema Rezepte mithilfe der Chef-Konvention Rezeptbuchname::Rezeptname bezeichnet.