Schritt 15: Aktualisieren des Rezeptbuchs, um eine Bedingungslogik zu verwenden - 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.

Schritt 15: Aktualisieren des Rezeptbuchs, um eine Bedingungslogik zu verwenden

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.

Aktualisieren Sie jetzt Ihr Rezeptbuch, indem Sie ein Rezept hinzufügen, das eine Bedingungslogik verwendet. Bei dieser Methode wird der Code nur ausgeführt, wenn bestimmte Bedingungen erfüllt sind. Weitere Informationen finden Sie unter if Statements und case Statements.

Je nach Data Bag-Inhalt ermöglicht dieses Rezept Folgendes: Es zeigt eine Meldung im Protokoll zur Identifizierung des Betriebssystems an, auf dem die Instance ausgeführt wird. Zudem installiert es ein Paket mit dem richtigen Paket-Manager für die vorhandene Linux-Verteilung. Dieses Paket erhält den Namen tree. Es ist eine einfache Anwendung zum Visualisieren von Verzeichnislisten.

So aktualisieren Sie das Rezeptbuch auf der Instance und führen das neue Rezept aus:
  1. Erstellen Sie auf Ihrer lokalen Workstation im Unterverzeichnis recipes im Verzeichnis opsworks_cookbook_demo directory eine Datei namens conditional_logic.rb, die den folgenden Code enthält:

    instance = search("aws_opsworks_instance").first os = instance["os"] if os == "Red Hat Enterprise Linux 7" Chef::Log.info("********** Operating system is Red Hat Enterprise Linux. **********") elsif os == "Ubuntu 14.04 LTS" || os == "Ubuntu 16.04 LTS" || os == "Ubuntu 18.04 LTS" Chef::Log.info("********** Operating system is Ubuntu. **********") elsif os == "Microsoft Windows Server 2012 R2 Base" Chef::Log.info("********** Operating system is Windows. **********") elsif os == "Amazon Linux 2015.03" || os == "Amazon Linux 2015.09" || os == "Amazon Linux 2016.03" || os == "Amazon Linux 2016.09" || os == "Amazon Linux 2017.03" || os == "Amazon Linux 2017.09" || os == "Amazon Linux 2018.03" || os == "Amazon Linux 2" Chef::Log.info("********** Operating system is Amazon Linux. **********") elsif os == "CentOS Linux 7" Chef::Log.info("********** Operating system is CentOS 7. **********") else Chef::Log.info("********** Cannot determine operating system. **********") end case os when "Ubuntu 14.04 LTS", "Ubuntu 16.04 LTS", "Ubuntu 18.04 LTS" apt_package "Install a package with apt-get" do package_name "tree" end when "Amazon Linux 2015.03", "Amazon Linux 2015.09", "Amazon Linux 2016.03", "Amazon Linux 2016.09", "Amazon Linux 2017.03", "Amazon Linux 2017.09", "Amazon Linux 2018.03", "Amazon Linux 2", "Red Hat Enterprise Linux 7", "CentOS Linux 7" yum_package "Install a package with yum" do package_name "tree" end else Chef::Log.info("********** Cannot determine operating system type, or operating system is not Linux. Package not installed. **********") end
  2. Führen Sie am Terminal oder an der Eingabeaufforderung den Befehl tar aus, um eine neue Version der Datei opsworks_cookbook_demo.tar.gz zu erstellen, die das Verzeichnis opsworks_cookbook_demo und seinen aktualisierten Inhalt enthält.

  3. Laden Sie die aktualisierte Datei opsworks_cookbook_demo.tar.gz in Ihren S3-Bucket hoch.

  4. Folgen Sie den Anweisungen in Schritt 5: Aktualisieren des Rezeptbuchs auf der Instance und Ausführen des Rezepts, um das Rezeptbuch auf der Instance zu aktualisieren und das Rezept auszuführen. Geben Sie im Schritt „Rezept ausführen” für Recipes to execute (Auszuführende Rezepte) opsworks_cookbook_demo::conditional_logic ein.

So testen Sie das Rezept:
  1. Wählen Sie , während die Seite Running command execute_recipes (Befehl execute_recipes wird ausgeführt) noch geöffnet ist, für cookbooks-demo1 und Log die Option show (anzeigen) aus. Die Protokollseite execute_recipes wird angezeigt.

  2. Führen Sie im Protokoll einen Bildlauf nach unten durch und suchen Sie einen Eintrag, der dem folgenden ähnelt:

    [2015-11-16T19:59:05+00:00] INFO: ********** Operating system is Amazon Linux. **********

    Da das Betriebssystem der Instance Amazon Linux 2016.09 ist, wird nur der vorherige Eintrag (von den fünf möglichen Einträgen im Code des Rezepts) im Protokoll angezeigt.

  3. Wenn das Betriebssystem Linux ist, erstellt das Rezept das Paket tree. Zum Anzeigen der Verzeichnisinhalte geben Sie an der Eingabeaufforderung des gewünschten Verzeichnisses tree ein oder nutzen den gewünschten Verzeichnispfad (beispielsweise tree /var/chef/runs).

Im nächsten Schritt aktualisieren Sie das Rezeptbuch, um Funktionen eines externen Rezeptbuchs zu nutzen, das von der Chef-Community bereitgestellt wird.