

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 der OpsWorks Stacks Agent CLI
<a name="troubleshoot-debug-cli"></a>

**Wichtig**  
Der AWS OpsWorks Stacks Service 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](https://repost.aws/) oder über den [AWS Premium-Support](https://aws.amazon.com/support).

**Anmerkung**  
Die Agenten-CLI ist nur für Linux-Instances verfügbar.

Auf jeder Online-Instanz installiert OpsWorks Stacks einen Agenten, der mit dem Dienst kommuniziert. Der OpsWorks Stacks-Dienst wiederum sendet Befehle an den Agenten, um Aufgaben wie das Initiieren von Chef-Läufen auf der Instanz auszuführen, wenn ein Lebenszyklusereignis eintritt. Auf Linux-Instances stellt der Agent eine Befehlszeilenschnittstelle (Command Line Interface, CLI) bereit, die für die Fehlerbehebung sehr nützlich ist. Um Agenten-CLI-Befehle auszuführen, verwenden Sie SSH [, um eine Verbindung mit einer Instance herzustellen](workinginstances-ssh.md). Anschließend können Sie Agenten-CLI-Befehle ausführen, um eine Vielzahl an Aufgaben durchzuführen, einschließlich der folgenden: 
+ Rezepte ausführen.
+ Chef-Protokolle anzeigen.
+ [-Stack-Konfiguration und JSON-Bereitstellung](workingcookbook-json.md) anzeigen.

Weitere Informationen zum Einrichten einer SSH-Verbindung zu einer Instance finden Sie unter [Anmelden mit SSH](workinginstances-ssh.md). Zudem müssen Sie über [SSH- und Sudo-Berechtigungen](opsworks-security-users.md) für den Stack verfügen.

In diesem Abschnitt wird beschrieben, wie Sie die Agenten-CLI für die Fehlerbehebung verwenden. Weitere Informationen und eine vollständige Befehlsreferenz finden Sie unter [OpsWorks Stacks Agent CLI](agent.md).

**Topics**
+ [Ausführen von Rezepten](#troubleshoot-debug-cli-recipes)
+ [Anzeigen von Chef-Protokollen](#troubleshoot-debug-cli-log)
+ [Anzeigen der Stack-Konfiguration und der JSON-Bereitstellung](#troubleshoot-debug-cli-json)

## Ausführen von Rezepten
<a name="troubleshoot-debug-cli-recipes"></a>

Der Agenten-CLI-Befehl [`run_command`](agent-run.md) weist den Agenten an, einen bereits zuvor durchgeführten Befehl erneut auszuführen. Die wichtigsten Befehle für die Fehlerbehebung – `setup`, `configure`, `deploy` und `undeploy` – entsprechen jeweils einem Lebenszyklusereignis. Sie weisen den Agenten an, eine Chef-Ausführung zu initiieren, um die zugehörigen Rezepte auszuführen.

**Anmerkung**  
Der Befehl `run_command` ist auf die Ausführung der Rezeptgruppe begrenzt, die einem bestimmten Befehl zugeordnet ist, in der Regel die Rezepte, die mit einem Lebenszyklusereignis verknüpft sind. Sie können ihn nicht verwenden, um ein bestimmtes Rezept auszuführen. Um ein oder mehrere angegebene Rezepte auszuführen, verwenden Sie den Stack-Befehl [Execute Recipes (Rezepte ausführen)](workingstacks-commands.md) oder die entsprechenden CLI- oder API-Aktionen ([https://docs.aws.amazon.com/cli/latest/reference/opsworks/create-deployment.html](https://docs.aws.amazon.com/cli/latest/reference/opsworks/create-deployment.html) und [https://docs.aws.amazon.com/opsworks/latest/APIReference/API_CreateDeployment.html](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_CreateDeployment.html)).

Der Befehl `run_command` ist für das Debuggen benutzerdefinierter Rezepte nützlich, besonders Rezepten, die der Einrichtung und Konfiguration von Lebenszyklusereignissen zugewiesen sind, die Sie nicht direkt über die Konsole auslösen können. Durch die Verwendung von `run_command` können Sie die Rezepte eines bestimmten Ereignisses so häufig wie nötig ausführen, ohne dass Sie Instances starten oder beenden müssen.

**Anmerkung**  
OpsWorks Stacks führt Rezepte aus dem Kochbuch-Cache der Instanz aus, nicht aus dem Kochbuch-Repository. OpsWorks Stacks lädt beim Start der Instanz Kochbücher in diesen Cache herunter, aktualisiert den Cache auf Online-Instanzen jedoch nicht automatisch, wenn Sie Ihre Kochbücher nachträglich ändern. Wenn Sie Ihre Rezeptbücher seit dem Start der Instance geändert haben, müssen Sie den Stack-Befehl zum [Aktualisieren der Rezeptbücher](workingstacks-commands.md) ausführen, um den Rezeptbuchzwischenspeicher mit der neuesten Version aus dem Repository zu aktualisieren.

Nur die neuesten Befehle werden vom Agenten zwischengespeichert. Sie können sie auflisten, indem Sie [`list_commands`](agent-list.md) ausführen, welches eine Liste der zwischengespeicherten Befehle und die Zeit, in der die Operationen ausgeführt wurden, zurückgibt.

```
sudo opsworks-agent-cli list_commands
2013-02-26T19:08:26        setup
2013-02-26T19:12:01        configure
2013-02-26T19:12:05        configure
2013-02-26T19:22:12        deploy
```

Um den neuesten Befehl erneut auszuführen, führen Sie dies aus:

```
sudo opsworks-agent-cli run_command
```

Um die neueste Instance eines angegebenen Befehls erneut auszuführen, führen Sie dies aus:

```
sudo opsworks-agent-cli run_command command
```

Um beispielsweise die Schritte zum Einrichten der Rezepte erneut durchzuführen, können Sie den folgenden Befehl ausführen:

```
sudo opsworks-agent-cli run_command setup
```

Jeder Befehl verfügt über eine zugewiesene [Stack-Konfiguration und JSON-Bereitstellung](workingcookbook-json.md), in der der Stack- und Bereitstellungsstatus zum Zeitpunkt der Befehlsausführung angegeben ist. Da sich diese Daten von einem Befehl zum nächsten ändern können, kann eine ältere Instance eines Befehls etwas andere Daten verwenden als die neueste. Um eine bestimmte Instance eines Befehls erneut auszuführen, kopieren Sie die Zeit von der Ausgabe `list_commands` und führen Sie die folgenden Schritte aus:

```
sudo opsworks-agent-cli run_command time
```

Die vorherigen Beispiele führen alle den Befehl erneut aus, indem sie das Standard-JSON-Format verwenden, das heißt, dass das JSON-Format für diesen Befehl installiert wurde. Sie können einen Befehl anhand einer beliebigen JSON-Datei wie folgt erneut ausführen:

```
sudo opsworks-agent-cli run_command -f /path/to/valid/json.file
```

## Anzeigen von Chef-Protokollen
<a name="troubleshoot-debug-cli-log"></a>

Der Agenten-CLI-Befehl [`show_log`](agent-show.md) zeigt ein bestimmtes Protokoll an. Nachdem der Befehl abgeschlossen ist, werden Sie das Dateiende sehen. Der Befehl `show_log` bietet daher eine bequeme Möglichkeit, das Protokoll zu fragmentieren, in dem Sie normalerweise die Fehlerinformationen finden. Sie können nach oben navigieren, um die früheren Teile des Protokolls zu sehen.

Um das aktuelle Protokoll des Befehls einzusehen, führen Sie dies aus:

```
sudo opsworks-agent-cli show_log
```

Sie können auch Protokolle für einen bestimmten Befehl anzeigen, beachten Sie jedoch, dass der Agent nur Protokolle der letzten 30 Befehle zwischenspeichert. Sie können Befehle einer Instance auflisten, indem Sie [`list_commands`](agent-list.md) ausführen, wodurch eine Liste der zwischengespeicherten Befehle und die Zeit, in der die Operationen ausgeführt wurden, zurückgegeben werden. Ein Beispiel finden Sie unter [Ausführen von Rezepten](#troubleshoot-debug-cli-recipes).

Um das Protokoll für die neueste Ausführung eines bestimmten Befehls anzuzeigen, führen Sie die folgenden Schritte aus:

```
sudo opsworks-agent-cli show_log command
```

Der Befehlsparameter kann auf `setup`, `configure`, `deploy`, `undeploy`, `start`, `stop` oder `restart` gesetzt werden. Die meisten dieser Befehle entsprechen Lebenszyklusereignissen und weisen den Agenten an, die zugehörigen Rezepte auszuführen.

Um das Protokoll für eine bestimmte Befehlsausführung anzuzeigen, kopieren Sie das Datum aus der Ausgabe `list_commands` und führen Folgendes aus:

```
sudo opsworks-agent-cli show_log date
```

Wenn ein Befehl noch ausgeführt wird, zeigt `show_log` den aktuellen Zustand des Protokolls an.

**Anmerkung**  
Eine Möglichkeit `show_log` zur Behebung von Fehlern und out-of-memory Problemen besteht darin, ein Protokoll während der Ausführung wie folgt zu protokollieren:  
Verwenden Sie `run_command`, um das entsprechende Lebenszyklusereignis auszulösen. Weitere Informationen finden Sie unter [Ausführen von Rezepten](#troubleshoot-debug-cli-recipes).
Führen Sie `show_log` mehrmals aus, um zu sehen, wie das Protokollfragment geschrieben wird.
Wenn Chef nicht genügend Arbeitsspeicher zur Verfügung steht oder es unerwartet beendet wird, wird das Protokoll abrupt beendet. Wenn ein Rezept fehlschlägt, wird das Protokoll mit einer Ausnahme und einem Stack-Trace beendet. 

## Anzeigen der Stack-Konfiguration und der JSON-Bereitstellung
<a name="troubleshoot-debug-cli-json"></a>

Ein Großteil der Daten, die von Rezepten verwendet werden, stammen von der [Stack-Konfiguration und JSON-Bereitstellung](workingcookbook-json.md), die eine Reihe von Chef-Attributen definieren, die eine detaillierte Beschreibung der Stack-Konfiguration, alle Bereitstellungen und optionale benutzerdefinierte Attribute, die Benutzer hinzufügen können, bereitstellen. Für jeden Befehl installiert OpsWorks Stacks eine JSON-Datei, die den Stack und den Bereitstellungsstatus zum Zeitpunkt des Befehls darstellt. Weitere Informationen finden Sie unter [Attribute für die Stack-Konfiguration und -Bereitstellung](workingcookbook-json.md).

Wenn Ihre benutzerdefinierten Rezepte die Daten aus der Stack-Konfiguration und JSON-Bereitstellung erhalten, können Sie die Daten überprüfen, indem Sie das JSON-Objekt überprüfen. Die einfachste Methode zur Anzeige der Stack-Konfiguration und JSON-Bereitstellung ist, den Agenten-CLI-Befehl [`get_json`](agent-json.md) auszuführen, der eine formatierte Version des JSON-Objekts anzeigt. Das folgende Beispiel zeigt die ersten Zeilen einiger typischer Ausgaben:

```
{
  "opsworks": {
    "layers": {
      "php-app": {
        "id": "4a2a56c8-f909-4b39-81f8-556536d20648",
        "instances": {
          "php-app2": {
            "elastic_ip": null,
            "region": "us-west-2",
            "booted_at": "2013-02-26T20:41:10+00:00",
            "ip": "10.112.235.192",
            "aws_instance_id": "i-34037f06",
            "availability_zone": "us-west-2a",
            "instance_type": "c1.medium",
            "private_dns_name": "ip-10-252-0-203.us-west-2.compute.internal",
            "private_ip": "10.252.0.203",
            "created_at": "2013-02-26T20:39:39+00:00",
            "status": "online",
            "backends": 8,
            "public_dns_name": "ec2-10-112-235-192.us-west-2.compute.amazonaws.com"
...
```

Sie können die neueste Stack-Konfiguration und JSON-Bereitstellung wie folgt anzeigen:

```
sudo opsworks-agent-cli get_json
```

Sie können die neueste Stack-Konfiguration und JSON-Bereitstellung für einen bestimmten Befehl anzeigen, indem Sie den folgenden Befehl ausführen:

```
sudo opsworks-agent-cli get_json command
```

Der Befehlsparameter kann auf `setup`, `configure`, `deploy`, `undeploy`, `start`, `stop` oder `restart` gesetzt werden. Die meisten dieser Befehle entsprechen Lebenszyklusereignissen und weisen den Agenten an, die zugehörigen Rezepte auszuführen.

Sie können die Stack-Konfiguration und JSON-Bereitstellung für eine bestimmte Befehlsausführung anzeigen, indem Sie das Datum des Befehls wie folgt angeben:

```
sudo opsworks-agent-cli get_json date
```

Die einfachste Möglichkeit zur Verwendung dieses Befehls ist:

1. Führen Sie `list_commands` aus, welches eine Liste der Befehle, die in der Instance ausgeführt wurden, und das Datum, an dem jeder Befehl ausgeführt wurde, zurückgibt.

1. Kopieren Sie das Datum für den entsprechenden Befehl und verwenden Sie es als `get_json` *date* Argument.