Führen Sie Skripts als Administrator aus, um Worker zu konfigurieren - 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 Skripts als Administrator aus, um Worker zu konfigurieren

Mithilfe von benutzerdefinierten Skripten für die Konfiguration von Fleet-Hosts 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 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.

Wichtig

Das Skript wird mit erhöhten Rechten sudo auf Linux Systemen und mit „Administrator“ auf Windows Systemen ausgeführt. Es liegt in Ihrer Verantwortung sicherzustellen, dass das Skript keine Sicherheitsprobleme verursacht.

Wenn Sie ein Admin-Skript verwenden, sind Sie dafür verantwortlich, den Zustand Ihrer Flotte zu überwachen.

Zu den häufigsten Verwendungszwecken des Skripts gehören:

  • Installation von Software, für die Administratorzugriff erforderlich ist

  • Installation von Docker Containern

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.

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

  3. Legen Sie eine Zeitüberschreitung in Sekunden für die Ausführung des Skripts fest. 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-internal 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

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

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

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

Wichtige Hinweise:

  • Mitarbeiter, 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

    Innerhalb dieser Protokollgruppe befindet sich ein Stream von

    worker-ZZZZZ
  • CloudWatch Logs speichert Worker-Protokolle entsprechend der von Ihnen konfigurierten Aufbewahrungsfrist.

Die Ausführung des Host-Konfigurationsskripts wird überwacht

Mit Admin-Skripten zur Konfiguration von Workern 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 jetzt überwachen, ob Konfigurationsskripte erfolgreich ausgeführt wurden oder nicht. Zu den Fehlerursachen können Skriptfehler, unregelmäßiges Verhalten oder andere unbekannte Situationen gehören.

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

CloudWatch Überwachung von Protokollen

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

Jeder Mitarbeiter stellt beispielsweise einen eigenen Protokollstream bereitworker-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

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

Strukturierte Protokollierung durch Worker Agent

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 des Gesundheitszustands von Arbeitnehmern. 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 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

Sie können CloudWatch Metrikfilter einrichten, um CloudWatch Metriken aus Protokollen zu generieren. Auf diese Weise 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 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*"}
  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 (z. B.) 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 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 im Amazon CloudWatch Logs-Benutzerhandbuch.