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.
Schritt 2.3: Implementieren eines benutzerdefinierten Rezeptbuchs
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
Obwohl ein Stack im Grunde ein Container für Instances ist, fügen Sie einem Stack Instances nicht direkt hinzu. Sie fügen mindestens einen Layer hinzu. Jeder Layer repräsentiert dabei eine Gruppe zusammengehöriger Instances, die Sie dann den Layers hinzufügen.
Eine Ebene ist im Grunde eine Blaupause, die AWS OpsWorks Stacks verwendet, um eine Reihe von EC2 Amazon-Instances mit derselben Konfiguration zu erstellen. Eine Instance beginnt mit einer Basisversion des Betriebssystems und der Layer der Instance führt verschiedene Aufgaben auf der Instance aus, um dieses Konzept zu implementieren, darunter:
-
Erstellen von Verzeichnissen und Dateien
-
Verwalten von Benutzern
-
Installieren und Konfigurieren von Software
-
Starten oder Beenden von Servern
-
Bereitstellen von Anwendungscode und zugehörigen Dateien
Eine Ebene führt Aufgaben auf Instances durch, indem sie Chef-Rezepte — kurz
AWS OpsWorks Stacks stellt jeder Ebene eine Reihe von integrierten Rezepten zur Verfügung, mit denen Standardaufgaben ausgeführt werden. Mithilfe von benutzerdefinierten Rezepten, die Sie den einzelnen Lebenszyklusereignissen eines Layers zuweisen, können Sie die Funktionalität eines Layers um zusätzliche Aufgaben erweitern. Windows-Stacks unterstützen benutzerdefinierte Ebenen mit einem minimalen Rezeptsatz ausschließlich für einige Basisaufgaben. Um Ihren Windows-Instances Funktionen hinzuzufügen, müssen Sie benutzerdefinierte Rezepte implementieren, um beispielsweise Software zu installieren oder Anwendungen bereitzustellen. In diesem Thema wird beschrieben, wie Sie eine einfache benutzerdefinierte Ebene zur Unterstützung von IIS Instanzen erstellen.
Themen
Eine kurze Einführung in Rezeptbücher und Rezepte
Ein Rezept definiert mindestens einen Aspekt des erwarteten Status einer Instance: welche Verzeichnisse sie haben sollte, welche Softwarepakete installiert sein sollten, welche Apps bereitgestellt werden sollten usw. Rezepte sind in einem Rezeptbuch zusammengefasst. Dieses enthält in der Regel ein oder mehrere zusammengehörige Rezepte sowie die zugehörigen Dateien wie Vorlagen zum Erstellen von Konfigurationsdateien.
Dieses Thema ist eine sehr grundlegende Einführung in Rezepte, gerade genug, um Ihnen zu zeigen, wie Sie ein Kochbuch implementieren, das eine einfache benutzerdefinierte IIS Ebene unterstützt. Weitere allgemeine Informationen zu Rezeptbüchern finden Sie unter Cookbooks und Rezepte. Eine detaillierte Einführung in die Implementierung von Rezeptbüchern einschließlich Windows-spezifischer Themen finden Sie unter Rezeptbücher 101.
Chef-Rezepte sind technisch gesehen Ruby-Anwendungen, aber der meiste, wenn nicht sogar der gesamte Code befindet sich im ChefDSL. Der DSL besteht größtenteils aus einer Reihe von Ressourcen, die Sie verwenden können, um einen Aspekt des Instanzstatus deklarativ zu spezifizieren. Eine directory
-RessourceC:\data
des angegebenen Benutzers mit umfassenden Rechten definiert, das keine Rechte vom übergeordneten Verzeichnis erbt.
directory 'C:\data' do rights :full_control, 'WORKGROUP\
username
' inherits false action :create end
Wenn Chef ein Rezept ausführt, wird jede Ressource einzeln ausgeführt. Dabei werden die Daten an einen zugehörigen Anbieter übergeben, ein Ruby-Objekt, das die Einzelheiten bei der Modifizierung des Instance-Zustands verarbeitet. In diesem Fall erstellt der Anbieter ein neues Verzeichnis mit der angegebenen Konfiguration.
Das benutzerdefinierte Kochbuch für die benutzerdefinierte IIS Ebene muss die folgenden Aufgaben erfüllen:
-
Installieren Sie die IIS Funktion und starten Sie den Dienst.
Diese Aufgabe wird in der Regel während der Einrichtung direkt nach dem Hochfahren der Instance ausgeführt.
-
Stellen Sie eine App für die Instanz bereit, eine einfache HTML Seite für dieses Beispiel.
Diese Aufgabe wird in der Regel während der Einrichtung ausgeführt. Apps müssen üblicherweise jedoch regelmäßig aktualisiert werden, daher müssen Sie auch Updates bereitstellen, während die Instance bereits online ist.
Sie können alle diese Aufgaben mit nur einem Rezept ausführen. Es empfiehlt sich jedoch, für Einrichtung und Bereitstellung jeweils eigene Rezepte zu verwenden. So können Sie App-Updates jederzeit bereitstellen, ohne dafür Einrichtungscode ausführen zu müssen. Im Folgenden wird beschrieben, wie Sie ein Kochbuch so einrichten, dass es eine benutzerdefinierte IIS Ebene unterstützt. In den nachfolgenden Themen erfahren Sie, wie Sie die Rezepte implementieren.
Dies sind Ihre ersten Schritte
-
Erstellen Sie ein Verzeichnis namens
iis-cookbook
in einem lokalen Verzeichnis auf Ihrem Computer. -
Fügen Sie eine Datei
metadata.rb
mit dem folgenden Inhalt zuiis-cookbook
hinzu.name "iis-cookbook" version "0.1.0"
In diesem Beispiel enthält die Datei
metadata.rb
nur minimale Daten. Weitere Informationen zur Verwendung dieser Datei finden Sie unter metadata.rb. -
Fügen Sie ein Verzeichnis
recipes
zuiis-cookbook
hinzu.Dieses Verzeichnis, das den Namen
recipes
haben muss, enthält die Rezepte des Rezeptbuchs.
Im Allgemeinen können Rezeptbücher verschiedene andere Verzeichnisse enthalten. Wenn ein Rezept beispielsweise eine Vorlage zum Erstellen einer Konfigurationsdatei enthält, wird diese Vorlage normalerweise im Verzeichnis templates\default
gespeichert. Das Rezeptbuch in diesem Beispiel besteht nur aus Rezepten und benötigt daher keine weiteren Verzeichnisse. In diesem Beispiel wird außerdem nur ein einziges Rezeptbuch verwendet. Für komplexere Projekte können Sie jedoch auch beliebig viele Rezeptbücher verwenden. Es bietet sich beispielsweise an, für Einrichtung und Bereitstellung jeweils eigene Rezeptbücher zu verwenden. Weitere Beispiele für Rezeptbücher finden Sie unter Cookbooks und Rezepte.
Implementieren Sie ein Rezept zum Installieren und Starten IIS
IISist eine Windows-Funktion, eine aus einer Reihe optionaler Systemkomponenten, die Sie auf Windows Server installieren können. Sie können ein Rezept IIS auf eine der folgenden Arten installieren:
-
Verwenden Sie eine
powershell_script
-Ressource, um das Install-WindowsFeature
-Cmdlet auszuführen. -
Verwenden Sie das Chef-Windows-Rezeptbuch
windows_feature
.Das
windows
Cookbook enthält eine Reihe von Ressourcen, deren Anbieter Deployment Image Servicing and Management(DISM) verwenden, um eine Vielzahl von Aufgaben auf Windows-Instanzen auszuführen, einschließlich der Installation von Funktionen.
Anmerkung
powershell_script
ist eine der wichtigsten Ressourcen für Windows-Rezepte. Sie können damit eine Vielzahl von Aufgaben auf einer Instanz ausführen, indem Sie ein PowerShell Skript oder ein Cmdlet ausführen. Skripte sind insbesondere für Aufgaben hilfreich, die von Chef-Ressourcen nicht unterstützt werden.
In diesem Beispiel wird ein PowerShell Skript zum Installieren und Starten von Web Server () IIS ausgeführt. Das windows
-Rezeptbuch wird im weiteren Verlauf dieser Anleitung beschrieben. Ein Beispiel für die Verwendung von windows_feature
To install IIS finden Sie unterInstallation einer Windows-Funktion: IIS.
Fügen Sie ein Rezept namens install.rb
mit dem folgenden Inhalt zum Verzeichnis recipes
des Rezeptbuchs hinzu.
powershell_script 'Install IIS' do code 'Install-WindowsFeature Web-Server' not_if "(Get-WindowsFeature -Name Web-Server).Installed" end service 'w3svc' do action [:start, :enable] end
Das Rezept enthält zwei Ressourcen.
- powershell_script
-
powershell_script
führt das angegebene PowerShell Skript oder Cmdlet aus. Das Beispiel verwendet folgende Attributeinstellungen:-
code
— Die auszuführenden PowerShell Cmdlets.In diesem Beispiel wird ein
Install-WindowsFeature
Cmdlet ausgeführt, das den Webserver () installiert. IIS Allgemein kann das Attributcode
beliebig viele Zeilen haben. Sie können also alle Cmdlets ausführen, die Sie benötigen. -
not-if
— Ein Guard-Attribut, das sicherstellt, dass das Rezept IIS nur installiert wird, wenn es noch nicht installiert wurde. Rezepte sind in der Regel idempotent, damit sie dieselbe Aufgabe nur einmal ausführen.
Jede Ressource hat eine Aktion, über die die Aktion festgelegt ist, die der Anbieter ausführt. Für dieses Beispiel gibt es keine explizite Aktion, daher führt der Anbieter die
:run
Standardaktion aus, bei der das angegebene PowerShell Skript ausgeführt wird. Weitere Informationen finden Sie unter Ein PowerShell Windows-Skript ausführen. -
- Service nicht zulässig
-
A
service
verwaltet einen Dienst, in diesem Fall den IIS Webserver-Dienst (W3SVC). Das Beispiel verwendet Standardattribute und gibt zwei Aktionen an, :start
und:enable
, die gestartet und aktiviert IIS werden.
Anmerkung
Wenn Sie Software installieren möchten, die ein Paketinstallationsprogramm verwendet, können Sie z. MSI B. eine windows_package
Ressource verwenden. Weitere Informationen finden Sie unter Installieren eines Pakets.
Aktivieren des benutzerdefinierten Rezeptbuchs
AWS OpsWorks Stacks führt auf jeder Instanz Rezepte aus einem lokalen Cache aus. Gehen Sie wie folgt vor, um eigene benutzerdefinierte Rezepte auszuführen:
-
Speichern Sie das Rezeptbuch in einem Remote-Repository.
AWS OpsWorks Stacks lädt die Kochbücher aus diesem Repository in den lokalen Cache jeder Instanz herunter.
-
Bearbeiten Sie den Stack, um benutzerdefinierte Rezeptbücher zu aktivieren.
Benutzerdefinierte Kochbücher sind standardmäßig deaktiviert. Sie müssen also benutzerdefinierte Kochbücher für den Stapel aktivieren und das Repository URL und die zugehörigen Informationen angeben.
AWS OpsWorks Stacks unterstützt S3-Archive und Git-Repositorys für benutzerdefinierte Kochbücher. In diesem Beispiel wird ein S3-Archiv verwendet. Weitere Informationen finden Sie unter Rezeptbuch-Repositorys.
So verwenden Sie ein S3-Archiv
-
Erstellen Sie ein
.zip
-Archiv des Verzeichnissesiis-cookbook
.AWS OpsWorks Stacks unterstützt auch
.tgz
(mit Gzip komprimierte Tar-) Archive für Windows-Stacks. -
Laden Sie das Archiv in einen S3-Bucket in der Region USA West (Nordkalifornien) hoch und veröffentlichen Sie die Datei. Sie können auch private S3-Archive verwenden, öffentliche Archive sind für dieses Beispiel jedoch ausreichend und einfacher zu handhaben.
Melden Sie sich bei AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/
. -
Wenn Sie noch keinen Bucket angelegt haben
us-west-1
, wählen Sie Create Bucket und erstellen Sie einen Bucket in der Region USA West (Nordkalifornien). -
Wählen Sie in der Bucket-Liste den Namen des Buckets aus, in den Sie die Datei hochladen möchten, und danach Upload (Hochladen).
-
Wählen Sie Add Files (Dateien hinzufügen) aus.
-
Wählen Sie die hochzuladende Archivdatei und danach Open (Öffnen).
-
Wählen Sie unten im Dialog Upload - Select Files and Folders (Hochladen - Dateien und Ordner auswählen) die Option Set Details (Details festlegen) aus.
-
Wählen Sie unten im DialogSet Details (Details festlegen) die Option Set Permissions (Berechtigungen festlegen) aus.
-
Wählen Sie im Dialog Set Permissions (Berechtigungen festlegen) die Option Make everything public (Alles veröffentlichen) aus.
-
Wählen Sie unten im DialogSet Permissions (Berechtigungen festlegen) die Option Start Upload (Hochladen starten) aus. Nach dem Upload wird die Datei
iis-cookbook.zip
in Ihrem Bucket angezeigt. -
Wählen Sie den Bucket und danach die Registerkarte Properties (Eigenschaften) für den Bucket aus. Notieren Sie sich neben Link die Archivdateien URL für die spätere Verwendung.
Weitere Informationen zum Hochladen von Dateien in einen Amazon S3 S3-Bucket finden Sie unter Wie lade ich Dateien und Ordner in einen S3-Bucket hoch? im Amazon S3 S3-Konsolen-Benutzerhandbuch.
Wichtig
Bis zu diesem Zeitpunkt hat Sie die Komplettlösung nur wenig Zeit gekostet; AWS OpsWorks Der Stacks-Service selbst ist kostenlos. Sie müssen jedoch für alle AWS Ressourcen bezahlen, die Sie verwenden, z. B. für Amazon S3 S3-Speicher. Sobald Sie das Archiv hochladen, entstehen Ihnen Kosten. Weitere Informationen finden Sie unter AWSPreise
So aktivieren Sie benutzerdefinierte Rezeptbücher für den Stack
-
Im AWS OpsWorks Wählen Sie in der Stacks-Konsole im Navigationsbereich Stack und dann oben rechts Stack-Einstellungen aus.
-
Wählen Sie oben rechts auf der Seite Settings (Einstellungen) die Option Edit (Bearbeiten) aus.
-
Legen Sie auf der Seite Settings (Einstellungen) die Option Use custom Chef cookbooks (Benutzerdefinierte Chef-Rezeptbücher verwenden) auf Yes (Ja) fest und geben Sie die folgenden Informationen ein:
-
Repository-Typ — S3-Archiv.
-
Repository URL — Das S3 URL der Kochbuch-Archivdatei, die Sie zuvor aufgenommen haben.
-
-
Wählen Sie Save (Speichern) aus, um die Stack-Konfiguration zu aktualisieren.
AWS OpsWorks Stacks installiert dein benutzerdefiniertes Kochbuch auf allen neuen Instanzen. Beachten Sie, dass AWS OpsWorks Stacks installiert oder aktualisiert benutzerdefinierte Kochbücher nicht automatisch auf Online-Instanzen. Dies können Sie, wie im weiteren Verlauf dieser Anleitung beschrieben, manuell tun.