

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.

# Führen Sie Host-Konfigurationsskripten mit Administratorrechten aus
<a name="smf-admin"></a>

Mithilfe von Host-Konfigurationsskripten können Sie administrative Aufgaben, wie z. B. die Softwareinstallation, für Ihre vom Service verwalteten Flottenmitarbeiter ausführen. Diese Skripts werden mit erhöhten Rechten (`sudo`anLinux, Administrator aktiviertWindows) ausgeführt, sodass Sie Ihre Worker flexibel für Ihr System konfigurieren können.

Deadline Cloud führt das Skript aus, nachdem der Worker den `STARTING` Status erreicht hat und bevor er irgendwelche Aufgaben ausführt.

**Wichtig**  
Das Skript wird mit erhöhten Berechtigungen ausgeführt. Es liegt in Ihrer Verantwortung sicherzustellen, dass das Skript keine Sicherheitsprobleme verursacht.  
Wenn Sie ein Host-Konfigurationsskript verwenden, sind Sie dafür verantwortlich, den Zustand Ihrer Flotte zu überwachen.

Zu den häufigsten Verwendungszwecken für Host-Konfigurationsskripten gehören:
+ Installation von Software, für die Administratorzugriff erforderlich ist
+ Installation von Docker Containern
+ Installation von Cloud-Speicherlösungen von Drittanbietern wieLucidLink. Eine exemplarische Vorgehensweise finden Sie im for [ LucidLink M&E-Blog unter Einrichtung von servicemanaged-Flottenskripten AWS für Deadline Cloud](https://aws.amazon.com/blogs/media/set-up-lucidlink-with-service-managed-fleet-scripts-for-aws-deadline-cloud/).

Sie können ein Host-Konfigurationsskript mit der Konsole oder mit dem erstellen und aktualisieren. AWS CLI

------
#### [ Console ]

1. Wählen Sie auf der Seite mit den **Flottendetails** die Registerkarte **Konfigurationen** aus.

1. Geben Sie im Feld **Skript** das Skript ein, das mit erhöhten Rechten ausgeführt werden soll. Sie können **Import** wählen, um ein Skript von Ihrer Workstation zu laden.

1. Legen Sie eine Zeitüberschreitung in Sekunden für die Ausführung des Skripts fest. Der Standardwert ist 300 Sekunden (5 Minuten).

1. Wählen Sie **Änderungen speichern**, um das Skript zu speichern.

------
#### [ Create with CLI ]

Verwenden Sie den folgenden AWS CLI Befehl, um eine Flotte mit einem Host-Konfigurationsskript zu erstellen. Ersetzen Sie den *placeholder* Text durch Ihre Informationen.

```
aws deadline create-fleet \
--farm-id farm-12345 \
--display-name "fleet-name" \
--max-worker-count 1 \
--configuration '{
"serviceManagedEc2": {
  "instanceCapabilities": {
    "vCpuCount": {"min": 2},
    "memoryMiB": {"min": 4096},
    "osFamily": "linux",
    "cpuArchitectureType": "x86_64"
  },
  "instanceMarketOptions": {"type":"spot"}
}
}' \
--role-arn arn:aws:iam::111122223333:role/role-name \
--host-configuration '{ "scriptBody": "script body", "scriptTimeoutSeconds": timeout value}'
```

------
#### [ Update with CLI ]

Verwenden Sie den folgenden AWS CLI Befehl, um das Host-Konfigurationsskript einer Flotte zu aktualisieren. Ersetzen Sie den *placeholder* Text durch Ihre Informationen.

```
aws deadline update-fleet \
--farm-id farm-12345 \
--fleet-id fleet-455678 \
--host-configuration '{ "scriptBody": "script body", "scriptTimeoutSeconds": timeout value}'
```

------

Die folgenden Skripte demonstrieren:
+ Die für das Skript verfügbaren Umgebungsvariablen
+ Diese AWS Anmeldeinformationen funktionieren in der Shell
+ Dass das Skript in einer Shell mit erhöhten Rechten ausgeführt wird

------
#### [ Linux ]

Verwenden Sie das folgende Skript, um zu zeigen, dass ein Skript mit `root` Rechten ausgeführt wird:

```
# Print environment variables
set 
# Check AWS Credentials
aws sts get-caller-identity
```

------
#### [ Windows ]

Verwenden Sie das folgende PowerShell Skript, um zu zeigen, dass ein Skript mit Administratorrechten ausgeführt wird:

```
Get-ChildItem env: | ForEach-Object { "$($_.Name)=$($_.Value)" }
aws sts get-caller-identity
function Test-AdminPrivileges {
  $currentUser = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
  $isAdmin = $currentUser.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
  
  return $isAdmin
}

if (Test-AdminPrivileges) {
  Write-Host "The current PowerShell session is elevated (running as Administrator)."
} else {
  Write-Host "The current PowerShell session is not elevated (not running as Administrator)."
}
exit 0
```

------

## Problembehandlung bei Host-Konfigurationsskripten
<a name="smf-admin-troubleshooting"></a>

Wenn Sie das Host-Konfigurationsskript ausführen: 
+ Bei Erfolg: Der Worker führt den Job aus
+ Bei einem Fehler (Exit-Code ungleich Null oder Absturz): 
  + Der Worker wird heruntergefahren

  Die Flotte startet automatisch einen neuen Worker unter Verwendung des neuesten Host-Konfigurationsskripts

Um das Skript zu überwachen:

1. Öffnen Sie die Flottenseite in der Deadline Cloud-Konsole.

1. Wählen Sie **Mitarbeiter anzeigen**, um den Deadline Cloud-Monitor zu öffnen.

1. Sehen Sie sich den Mitarbeiterstatus auf der Monitorseite an.

**Tipp**  
Legen Sie beim Testen von Host-Konfigurationsskripten die maximale Anzahl von Workern für die Flotte auf 1 fest, um zu vermeiden, dass mehrere Worker während der Iteration des Skripts gestartet werden.

Wichtige Hinweise:
+ Worker, die aufgrund eines Fehlers heruntergefahren wurden, sind in der Worker-Liste im Monitor nicht verfügbar. Verwenden Sie CloudWatch Logs, um die Worker-Logs in der folgenden Protokollgruppe einzusehen:

  ```
  /aws/deadline/farm-XXXXX/fleet-YYYYY
  ```

  Suchen Sie in dieser Protokollgruppe nach einem Stream mit dem Namen`worker-ZZZZZ`.
+ CloudWatch Logs speichert Worker-Protokolle entsprechend der von Ihnen konfigurierten Aufbewahrungsfrist.

### Überwachen Sie die Ausführung des Hostkonfigurationsskripts
<a name="smf-admin-monitoring"></a>

Mit Host-Konfigurationsskripten können Sie die volle Kontrolle über einen Deadline Cloud-Worker übernehmen. Sie können jedes Softwarepaket installieren, Betriebssystemparameter neu konfigurieren oder gemeinsam genutzte Dateisysteme mounten. Mit dieser erweiterten Funktion und der Fähigkeit von Deadline Cloud, auf Tausende von Workern zu skalieren, können Sie überwachen, wann Konfigurationsskripte erfolgreich ausgeführt wurden oder nicht.

Wir empfehlen die folgenden Lösungen für die Überwachung der Ausführung von Host-Konfigurationsskripten.

#### CloudWatch Überwachung von Protokollen
<a name="smf-admin-cloudwatch-logs"></a>

Alle Flottenhost-Konfigurationsprotokolle werden in die CloudWatch Protokollgruppe der Flotte und speziell in den CloudWatch Log-Stream eines Mitarbeiters gestreamt. Dies `/aws/deadline/farm-123456789012/fleet-777788889999` ist beispielsweise die Protokollgruppe für Farm`123456789012`, Flotte`777788889999`.

Jeder Mitarbeiter stellt beispielsweise einen eigenen Protokollstream bereit`worker-123456789012`. Die Hostkonfigurationsprotokolle enthalten Log-Banner wie „*Host-Konfigurationsskript wird ausgeführt“* und „*Host-Konfigurationsskript wurde abgeschlossen“, Exit-Code: 0*. Der Exit-Code des Skripts ist im fertigen Banner enthalten und kann mithilfe CloudWatch von Tools abgefragt werden.

#### CloudWatch Protokolliert und Einblicke
<a name="smf-admin-log-insights"></a>

CloudWatch Logs Insights bietet erweiterte Funktionen zur Analyse von Protokollinformationen. Die folgende Log Insights-Abfrage sucht beispielsweise nach dem Exit-Code der Hostkonfiguration, sortiert nach Zeit:

```
fields @timestamp, @message, @logStream, @log
| filter @message like /Finished running Host Configuration Script/
| parse @message /exit code: (?<exit_code>\d+)/
| display @timestamp, exit_code
| sort @timestamp desc
```

Weitere Informationen zu CloudWatch Logs Insights finden Sie unter [Analysieren von Protokolldaten mit CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html) im *Amazon CloudWatch Logs-Benutzerhandbuch*.

##### Strukturierte Protokollierung durch Worker Agent
<a name="smf-admin-structured-logging"></a>

Der Worker Agent von Deadline Cloud veröffentlicht strukturierte JSON-Protokolle für CloudWatch. Der Worker Agent bietet eine breite Palette strukturierter Protokolle zur Analyse der Gesundheit von Arbeitnehmern. Weitere Informationen finden Sie unter [Anmeldung des Deadline Cloud-Worker-Agents](https://github.com/aws-deadline/deadline-cloud-worker-agent/blob/mainline/docs/logging.md) GitHub.

Die Attribute der strukturierten Protokolle werden in Felder in Log Insights entpackt. Sie können diese CloudWatch Funktion verwenden, um Fehler beim Starten der Hostkonfiguration zu zählen und zu analysieren. Mit einer Count-and-Bin-Abfrage kann beispielsweise ermittelt werden, wie oft Fehler auftreten:

```
fields @timestamp, @message, @logStream, @log
| sort @timestamp desc
| filter message like /Worker Agent host configuration failed with exit code/
| stats count(*) by exit_code, bin(1h)
```

#### CloudWatch metrische Filter für Metriken und Alarme
<a name="smf-admin-metric-filters"></a>

Sie können CloudWatch Metrikfilter einrichten, um CloudWatch Metriken aus Protokollen zu generieren. Mit Metrikfiltern können Sie Alarme und Dashboards zur Überwachung der Ausführung von Host-Konfigurationsskripten erstellen.

**So erstellen Sie einen Metrikfilter**

1. Öffnen Sie die CloudWatch Konsole.

1. Wählen Sie im Navigationsbereich **Protokolle** und dann **Protokollgruppen** aus.

1. Wählen Sie die Protokollgruppe Ihrer Flotte aus.

1. Wählen Sie **Metrikfilter erstellen** aus.

1. Definieren Sie Ihr Filtermuster mit einer der folgenden Methoden:
   + **Für Erfolgskennzahlen:**

     ```
     {$.message = "*Worker Agent host configuration succeeded.*"}
     ```
   + **Für Misserfolgsmetriken:**

     ```
     {$.exit_code != 0 && $.message = "*Worker Agent host configuration failed with exit code*"}
     ```

1. Wählen Sie **Weiter**, um eine Metrik mit den folgenden Werten zu erstellen:
   + **Metrik-Namespace:** Ihr Metrik-Namespace (zum Beispiel) **MyDeadlineFarm**
   + **Metrikname:** Ihr angeforderter Metrikname (z. B.) **host\$1config\$1failure**
   + **Metrikwert:** **1** (Jede Instanz entspricht einer Zählung von 1)
   + **Standardwert:** Leer lassen
   + **Einheit:** **Count**

Nachdem Sie Metrikfilter erstellt haben, können Sie CloudWatch Standardalarme konfigurieren, um bei erhöhten Ausfallraten bei der Hostkonfiguration Maßnahmen zu ergreifen, oder die Metriken zu einem CloudWatch Dashboard für day-to-day Betrieb und Überwachung hinzufügen.

Weitere Informationen finden Sie unter [Filter- und Mustersyntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) im *Amazon CloudWatch Logs-Benutzerhandbuch*.