Verwenden des Knoten-Suchindexes auf Windows-Stacks - 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.

Verwenden des Knoten-Suchindexes auf Windows-Stacks

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

In diesem Beispiel wird davon ausgegangen, dass Sie das Beispiel Ausführen eines Rezepts auf einer Windows-Instance bereits durchgearbeitet haben. Falls Sie das noch nicht getan haben, holen Sie das nun nach. Insbesondere wird darin beschrieben, wie Sie für Ihre Instances RDP-Zugriff aktivieren.

Dieses Beispiel basiert auf einem Windows-Stack mit einem benutzerdefinierten Layer und einer Instance. Es verwendet die Chef-Suche mit dem Suchindex node, um die öffentliche IP-Adresse des Servers abzurufen, und speichert die Adresse in einer Datei im Verzeichnis C:\tmp. Nachfolgend wird kurz beschrieben, wie Sie für dieses Beispiel den 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.

  2. 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 — NodeSearch

    • 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

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

    • Name — IPTest

    • Kurzname — iptest

  4. Fügen Sie eine 24/7-t2.Micro-Instance mit den Standardeinstellungen zum IPTest-Layer hinzu und starten Sie sie. Sie hat den Namen iptest1.

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

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

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

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

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

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

    directory 'C:\tmp' do rights :full_control, 'Everyone' recursive true action :create end windowsserver = search(:node, "hostname:iptest*").first Chef::Log.info("**********The public IP address is: '#{windowsserver[:ipaddress]}'**********") file 'C:\tmp\addresses.txt' do content "#{windowsserver[:ipaddress]}" rights :full_control, 'Everyone' action :create end

    Vom Rezept werden folgende Schritte ausgeführt:

    1. Erstellen Sie mithilfe einer Verzeichnisressource für die Datei ein Verzeichnis C:\tmp.

      Weitere Informationen zu dieser Ressource finden Sie unter Beispiel 3: Erstellen von Verzeichnissen.

    2. Verwendet die Chefsuche mit dem Suchindex node, um eine Liste der Knoten (Instances) mit einem Hostnamen abzurufen, der mit iptest beginnt.

      Wenn Sie das Standarddesign verwenden, bei dem Hostnamen durch Anhängen von Ganzzahlen an den kurzen Namen des Layers erstellt werden, gibt diese Suchanfrage alle Instances im IPTest-Layer zurück. In diesem Beispiel hat der Layer nur eine Instance, daher weist das Rezept diese einfach windowsserver zu. Wenn mehrere Instances vorhanden sind, können Sie die vollständige Liste abrufen und durchnummerieren.

    3. Fügt dem Chef-Protokoll für diesen Durchlauf eine Nachricht mit der IP-Adresse hinzu.

      Das Objekt windowsserver ist eine Hash-Tabelle, bei dem das Attribut ipaddress die öffentliche IP-Adresse der Instance enthält. Sie können diese Adresse im folgenden Rezept daher als windowsserver[:ipaddress] bezeichnen. Das Rezept fügt die entsprechende Zeichenfolge in die Nachricht ein und fügt diese dem Chef-Protokoll hinzu.

    4. Verwendet die Ressource file, um eine Datei C:\tmp\addresses.txt mit der IP-Adresse zu erstellen.

      Über das Attribut content wird der Inhalt der Datei, in diesem Fall die öffentliche IP-Adresse, festgelegt.

  5. Erstellen Sie ein .zip-Archiv von nodesearch, laden Sie das Archiv in einen S3-Bucket hoch, veröffentlichen Sie das Archiv und notieren Sie sich die URL des Archivs.

    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 installieren Sie das Rezeptbuch und führen 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 nodesearch::default eingestellt ist. Durch diesen Befehl wird Chef mit Ihrem Rezept ausgeführt. Lassen Sie die Seite "execute_recipes" offen.

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

So überprüfen Sie nodesearch
  1. Rufen Sie das Chef-Protokoll auf und sehen Sie sich das letzte execute_recipes-Ereignis an. Wählen Sie auf der Seite Running command execute_recipes page die Option show in der Spalte Log der Instance „iptest1” aus, um das Protokoll anzuzeigen. Blättern Sie nach unten zu Ihrer Protokollnachricht am Ende. Diese sieht etwa wie folgt aus.

    ... [2015-05-13T18:55:47+00:00] INFO: Storing updated cookbooks/nodesearch/recipes/default.rb in the cache. [2015-05-13T18:55:47+00:00] INFO: Storing updated cookbooks/nodesearch/metadata.rb in the cache. [2015-05-13T18:55:47+00:00] INFO: **********The public IP address is: '192.0.0.1'********** [2015-05-13T18:55:47+00:00] INFO: Processing directory[C:\tmp] action create (nodesearch::default line 1) [2015-05-13T18:55:47+00:00] INFO: Processing file[C:\tmp\addresses.txt] action create (nodesearch::default line 10) ...
  2. Melden Sie sich mit RDP bei der Instance an und rufen Sie das Verzeichnis C:\tmp\addresses.txt auf.