Ausführen eines Rezepts auf einer Windows-Instance - 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.

Ausführen eines Rezepts auf einer Windows-Instance

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.

Dieses Thema ist im Grunde eine verkürzte Version von Ausführen eines Rezepts auf einer Linux-Instance und erläutert, wie Sie ein Rezept auf einem Windows-Stack ausführen. Wir empfehlen Ihnen daher, zunächst Ausführen eines Rezepts auf einer Linux-Instance durchzuarbeiten, da Sie dort detailliertere Informationen finden, die für beide Betriebssysteme relevant sind.

Eine Beschreibung der Ausführung von Rezepten auf AWS OpsWorks Stacks-Linux-Instances finden Sie unter. Ausführen eines Rezepts auf einer Linux-Instance

Aktivieren von RDP-Zugriff

Falls Sie dies noch nicht getan haben, müssen Sie zunächst eine Sicherheitsgruppe mit einer Regel für eingehenden Datenverkehr einrichten, die RDP-Zugriff für Ihre Instances zulässt. Sie benötigen diese Gruppe beim Erstellen des Stacks.

Wenn Sie den ersten Stack in einer Region erstellen, erstellt AWS OpsWorks Stacks eine Reihe von Sicherheitsgruppen. Dazu gehört eine mit dem Namen etwaAWS-OpsWorks-RDP-Server, die AWS OpsWorks Stacks an alle Windows-Instanzen anhängt, um RDP-Zugriff zu ermöglichen. Standardmäßig sind in diesen Sicherheitsgruppe jedoch keine Regeln enthalten. Daher müssen Sie eine Regel für den eingehenden Datenverkehr zum Zulassen von RDP-Zugriff auf Ihre Instances hinzufügen.

So ermöglichen Sie den RDP-Zugriff
  1. Öffnen Sie die Amazon EC2 EC2-Konsole, stellen Sie sie auf die Region des Stacks ein und wählen Sie im Navigationsbereich Sicherheitsgruppen aus.

  2. Wählen Sie AWS- OpsWorks -RDP-Server, klicken Sie auf die Registerkarte Inbound und dann auf Bearbeiten.

  3. Fügen Sie eine Regel mit folgenden Einstellungen hinzu:

    • Typ RDP

    • Quelle — Die zulässigen Quell-IP-Adressen.

      In der Regel erlauben Sie eingehende RDP-Anfragen von Ihrer eigenen IP-Adresse oder einem festen IP-Adressbereich (üblicherweise der IP-Adressbereich Ihres Unternehmens).

Anmerkung

Wie nachfolgend beschrieben müssen Sie auch die Benutzerberechtigungen bearbeiten, um RDP-Zugriff für reguläre Benutzer zu ermöglichen.

Weitere Informationen finden Sie unter Anmelden mit RDP.

Erstellen und Ausführen von Rezepten

Nachfolgend wird kurz beschrieben, wie Sie für dieses Beispiel einen Stack erstellen. Weitere Informationen finden Sie unter Erstellen eines neuen Stacks.

Erstellen eines Stacks
  1. Öffnen Sie die AWS OpsWorks  Stacks-Konsole und wählen Sie Add Stack (Stack hinzufügen) aus. Legen Sie die folgenden Einstellungen fest, übernehmen Sie für die restlichen Einstellungen die Standardwerte und wählen Sie Add Stack (Stack hinzufügen) aus.

    • Name — WindowsRecipeTest

    • Region — USA West (Oregon)

      Dieses Beispiel funktioniert in jeder Region, wir empfehlen jedoch, US West (Oregon) für Tutorials zu verwenden.

    • Standardbetriebssystem — Microsoft Windows Server 2012 R2

  2. Wählen Sie Add a layer (Layer hinzufügen) aus und fügen Sie dem Stack einen benutzerdefinierten Layer mit folgenden Einstellungen hinzu:

    • Name — RecipeTest

    • Kurzname — Recipetest

  3. Fügen Sie dem RecipeTest Layer eine 24/7-Instanz mit Standardeinstellungen hinzu und starten Sie ihn.

    AWS OpsWorks Stacks weist diese Instanz automatisch AWS-OpsWorks-RDP-Server zu, sodass sich autorisierte Benutzer bei der Instanz anmelden können.

  4. Wählen Sie Permissions (Berechtigungen), dann Edit (Bearbeiten) und anschließend SSH/RDP und sudo/admin aus. Reguläre Benutzer benötigen zusätzlich zur Sicherheitsgruppe AWS-OpsWorks-RDP-Server diese Autorisierung, um sich bei der Instance anzumelden.

    Anmerkung

    Sie können sich auch als Administrator anmelden, allerdings mit einem anderen Verfahren. Weitere Informationen finden Sie unter Anmelden mit RDP.

Während die Instanz gestartet wird — das dauert in der Regel mehrere Minuten — können Sie das Kochbuch erstellen. Über das Rezept in diesem Beispiel, bei dem es sich um eine für Windows angepasste Version des Rezepts aus Beispiel 3: Erstellen von Verzeichnissen handelt, wird ein Datenverzeichnis erstellt.

Anmerkung

Bei der Implementierung von Kochbüchern für AWS OpsWorks Stacks-Windows-Instances verwenden Sie eine etwas andere Verzeichnisstruktur als bei der Implementierung von Cookbooks für Stacks-Linux-Instances. AWS OpsWorks Weitere Informationen finden Sie unter Rezeptbuch-Repositorys.

So richten Sie das Rezeptbuch ein
  1. Erstellen Sie ein Verzeichnis windowstest und öffnen Sie es.

  2. Erstellen Sie eine Datei metadata.rb mit dem folgenden Inhalt und speichern Sie sie unter windowstest.

    name "windowstest" version "0.1.0"
  3. Erstellen Sie ein Verzeichnis recipes in windowstest.

  4. Erstellen Sie eine Datei default.rb mit dem folgenden Rezept und speichern Sie sie im Verzeichnis recipes.

    Chef::Log.info("******Creating a data directory.******") directory 'C:\data' do rights :full_control, 'instance_name\username' inherits false action :create end

    Ersetzen Sie username durch Ihren Benutzernamen.

  5. Speichern Sie das Rezeptbuch in einem Repository.

    Um Ihr Kochbuch auf einer AWS OpsWorks Stacks-Instanz zu installieren, müssen Sie es in einem Repository speichern und Stacks die Informationen zur Verfügung stellen, die zum AWS OpsWorks Herunterladen des Kochbuchs auf die Instanz erforderlich sind. Sie können Windows-Rezeptbücher als Archivdatei in einem S3-Bucket oder in einem Git-Repository speichern. In diesem Beispiel verwenden wir einen S3-Bucket, daher müssen Sie ein ZIP-Archiv des Verzeichnisses windowstest erstellen. Weitere Informationen zu Rezeptbuch-Repositorys finden Sie unter Rezeptbuch-Repositorys.

  6. Laden Sie das Archiv in einen S3-Bucket hoch, veröffentlichen Sie das Archiv und notieren Sie sich die URL des Archivs. Sie können auch ein privates Archiv verwenden. Für dieses Beispiel ist ein öffentliches Archiv jedoch ausreichend und einfacher zu handhaben.

    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?.

Jetzt können Sie das Rezeptbuch installieren und das Rezept ausführen.

So führen Sie das Rezept aus
  1. Bearbeiten Sie den Stack, um benutzerdefinierte Rezeptbücher zu aktivieren, und legen Sie folgende Einstellungen fest:

    • Repository-Typ — S3-Archiv

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

    Übernehmen Sie für die übrigen Einstellungen die Standardwerte und wählen Sie Save aus, um die Stack-Konfiguration zu aktualisieren und zu speichern.

  2. Führen Sie den Stack-Befehl „Update Custom Cookbooks” aus, um die aktuelle Version Ihrer benutzerdefinierten Rezeptbücher auf den Stack-Instances einschließlich Online-Instances zu installieren. Wenn bereits eine ältere Version der Rezeptbücher installiert ist, werden diese überschrieben.

  3. Nachdem die benutzerdefinierten Rezeptbücher aktualisiert wurden, führen Sie das Rezept mithilfe des Stack-Befehls Execute Recipes aus. Achten Sie darauf, dass bei Recipes to execute windowstest::default eingestellt ist. Durch diesen Befehl wird Chef mit Ihrem Rezept ausgeführt.

Nachdem das Rezept erfolgreich ausgeführt wurde, können Sie es überprüfen.

So überprüfen Sie windowstest
  1. Sehen Sie sich das Chef-Protokoll an. Wählen Sie show in der Spalte Log der Instance „opstest1” aus, um das Protokoll anzuzeigen. Blättern Sie nach unten, wo Sie Ihre Protokollmeldung finden.

    ... [2014-07-31T17:01:45+00:00] INFO: Storing updated cookbooks/opsworks_cleanup/attributes/customize.rb in the cache. [2014-07-31T17:01:45+00:00] INFO: Storing updated cookbooks/opsworks_cleanup/metadata.rb in the cache. [2014-07-31T17:01:46+00:00] INFO: ******Creating a data directory.****** [2014-07-31T17:01:46+00:00] INFO: Processing template[/etc/hosts] action create (opsworks_stack_state_sync::hosts line 3) ...
  2. Wählen Sie Instances und anschließend rdp in der Spalte Actions (Aktionen) der Instance aus und fordern Sie ein RDP-Passwort mit einer angemessenen Ablaufzeit an. Kopieren Sie den DNS-Namen, den Benutzernamen und das Passwort. Sie können sich mithilfe eines RDP-Clients wie dem Windows Remote Desktop Connection-Client mit diesen Informationen bei der Instance anmelden und überprüfen, ob das Verzeichnis c:\data angelegt wurde. Weitere Informationen finden Sie unter Anmelden mit RDP.

Anmerkung

Wenn Ihr Rezept nicht ordnungsgemäß ausgeführt wurde, finden Sie unter Fehlersuche und Fehlerbehebung bei Rezepten Tipps zur Fehlerbehebung. Die meisten dieser Tipps lassen sich auch auf Windows-Instances übertragen. Wenn du deine Lösung testen möchtest, indem du das Rezept auf der Instanz bearbeitest, suche in dem C:\chef\cookbooks Verzeichnis, in dem AWS OpsWorks Stacks benutzerdefinierte Kochbücher installiert, nach deinem Kochbuch.

Automatisches Ausführen des Rezepts

Mit dem Befehl Execute Recipes (Rezepte ausführen) können Sie benutzerdefinierte Rezepte einfach testen, daher wird er auch in den meisten dieser Beispiele verwendet. In der Praxis führen Sie Rezepte jedoch in der Regel zu Standardzeitpunkten im Lebenszyklus einer Instanz aus, z. B. nachdem die Instanz den Startvorgang abgeschlossen hat oder wenn Sie eine App bereitstellen. AWS OpsWorks Stacks vereinfacht die Ausführung von Rezepten auf Ihrer Instance, indem es eine Reihe von Lebenszyklusereignissen für jede Ebene unterstützt: Setup, Configure, Deploy, Undeploy und Shutdown. Sie können AWS OpsWorks Stacks veranlassen, ein Rezept automatisch auf den Instanzen einer Ebene auszuführen, indem Sie das Rezept dem entsprechenden Lebenszyklusereignis zuweisen.

Normalerweise erstellen Sie Verzeichnisse, sobald die Instance hochgefahren wurde, also während des Einrichtens. Nachfolgend wird beschrieben, wie Sie das Beispielrezept während des Einrichtens auf demselben Stack ausführen, den Sie zuvor in diesem Beispiel erstellt haben. Für die anderen Ereignisse können Sie ebenso vorgehen.

So führen Sie Rezepte automatisch beim Einrichten aus
  1. Wählen Sie im Navigationsbereich „Ebenen“ und dann das Stiftsymbol neben dem Link „Rezepte“ der RecipeTest Ebene aus.

  2. Fügen Sie windowstest::default zu den Setup-Rezepten des Layers hinzu, klicken Sie auf +, um es dem Layer hinzuzufügen, und wählen Sie Save aus, um die Konfiguration zu speichern.

  3. Wählen Sie Instances aus, fügen Sie dem Layer eine weitere Instance hinzu und starten Sie sie.

    Die Instance sollte den Namen recipetest2 haben. Nach Abschluss des Startvorgangs wird AWS OpsWorks Stacks ausgeführt. windowstest::default

  4. Nachdem die Instance recipetest2 online ist, überprüfen Sie, ob das Verzeichnis c:\data angelegt wurde.

Anmerkung

Falls Sie den Ereignissen Einrichtung, Konfiguration oder Bereitstellung Rezepte zugewiesen haben, können Sie diese auch mit einem Stack-Befehl (Einrichtung und Konfiguration) oder einem Bereitstellungsbefehl (Bereitstellung) auch manuell ausführen, um das Ereignis auszulösen. Falls einem Ereignis mehrere Rezepte zugewiesen sind, werden mit diesen Befehlen alle Rezepte eines Ereignisses ausgeführt.