View a markdown version of this page

Führen Sie Host-Konfigurationsskripts mit Administratorrechten aus - Deadline Cloud

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-Konfigurationsskripts mit Administratorrechten aus

Mithilfe von Host-Konfigurationsskripten können Sie administrative Aufgaben wie die Softwareinstallation für Ihre vom Service verwalteten Flottenarbeiter ausführen. Diese Skripts werden mit erhöhten Rechten (sudoaktiviertLinux, Administrator aktiviertWindows) ausgeführt, sodass Sie Ihre Mitarbeiter 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.

Das Skript wird ausgeführt, nachdem Deadline Cloud die nutzungsbasierte Lizenzierung (UBL) eingerichtet hat. Deadline Cloud legt die Umgebungsvariablen für die UBL-Lizenz fest, wenn die Worker-Instanz gestartet wird, bevor der Worker Agent gestartet wird, und der Worker Agent führt dann Ihr Host-Konfigurationsskript aus. Das automatische UBL-Setup überschreibt keine Umgebungsvariablen, die Ihr Skript festlegt: Lizenzvariablen, die Ihr Skript systemweit festlegt, haben Vorrang für die Jobs, die der Worker ausführt. Weitere Informationen zu Lizenzierungsoptionen finden Sie unter. Verwendung von Softwarelizenzen mit Deadline Cloud

Wichtig

Das Skript wird mit erhöhten Berechtigungen ausgeführt. Es liegt in Ihrer Verantwortung sicherzustellen, dass das Skript keine Sicherheitsprobleme mit sich bringt.

Wenn Sie ein Host-Konfigurationsskript verwenden, sind Sie für die Überwachung des Zustands Ihrer Flotte verantwortlich.

Host-Konfigurationsskripte werden häufig wie folgt verwendet:

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

Console
  1. Wählen Sie auf der Seite mit den Flottendetails den Tab Konfigurationen.

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

  3. Stellen Sie einen Timeout-Zeitraum in Sekunden für die Ausführung des Skripts ein. Der Standardwert ist 300 Sekunden (5 Minuten).

  4. 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 Skripts veranschaulichen:

  • 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

Fehlerbehebung bei Host-Konfigurationsskripten

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 Arbeiter fährt herunter

    Die Flotte startet automatisch einen neuen Worker mit dem neuesten Host-Konfigurationsskript

Um das Skript zu überwachen:

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

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

  3. Sehen Sie sich den Worker-Status auf der Monitor-Seite an.

Tipp

Stellen Sie beim Testen von Host-Konfigurationsskripten die maximale Worker-Anzahl der Flotte auf 1 ein, um zu vermeiden, dass mehrere Worker bei 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 innerhalb dieser Protokollgruppe nach einem Stream mit dem Namenworker-ZZZZZ.

  • CloudWatch Logs speichert Worker-Logs gemäß Ihrem konfigurierten Aufbewahrungszeitraum.

Überwachen Sie die Ausführung des Hostkonfigurationsskripts

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

Alle Konfigurationsprotokolle für den Flottenhost werden in die CloudWatch Protokollgruppe der Flotte gestreamt, insbesondere in den CloudWatch Log-Stream eines Mitarbeiters. /aws/deadline/farm-123456789012/fleet-777788889999ist beispielsweise die Protokollgruppe für Farm123456789012, Fleet777788889999.

Jeder Worker stellt beispielsweise einen eigenen Log-Stream bereitworker-123456789012. Die Host-Konfigurationsprotokolle enthalten Log-Banner wie Running Host Configuration Script und Finished running Host Configuration Script, Exit-Code: 0. Der Exitcode des Skripts ist im fertigen Banner enthalten und kann mithilfe CloudWatch von Tools abgefragt werden.

CloudWatch Loggt Einblicke

CloudWatch Logs Insights bietet erweiterte Funktionen zur Analyse von Protokollinformationen. Die folgende Log Insights-Abfrage analysiert beispielsweise den Exitcode der Host-Konfiguration, sortiert nach Uhrzeit:

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 im Amazon CloudWatch Logs-Benutzerhandbuch.

Strukturierte Protokollierung durch Worker Agent

Der Deadline Cloud-Worker-Agent veröffentlicht strukturierte JSON-Protokolle für CloudWatch. Der Worker Agent bietet viele strukturierte Protokolle zur Analyse der Gesundheit der Mitarbeiter. Weitere Informationen finden Sie unter Anmeldung des Deadline Cloud-Worker-Agents GitHub.

Die Attribute der strukturierten Protokolle werden in Felder in Log Insights entpackt. Sie können diese CloudWatch Funktion verwenden, um Startfehler bei der Hostkonfiguration zu zählen und zu analysieren. Beispielsweise kann mithilfe einer Zähl- und Bin-Abfrage 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 Metrikfilter für Metriken und Alarme

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.

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

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

  4. Wählen Sie Metrikfilter erstellen aus.

  5. Definieren Sie Ihr Filtermuster mithilfe einer der folgenden Optionen:

    • Für Erfolgskennzahlen:

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

      {$.exit_code != 0 && $.message = "*Worker Agent host configuration failed with exit code*"}
  6. 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 (zum Beispiel) host_config_failure

    • 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 Maßnahmen bei erhöhten Ausfallraten der Host-Konfiguration zu ergreifen, oder die Metriken zu einem CloudWatch Dashboard für den täglichen Betrieb und die Überwachung hinzufügen.

Weitere Informationen finden Sie unter Filter- und Mustersyntax im Amazon CloudWatch Logs-Benutzerhandbuch.