Esegui gli script come amministratore per configurare i lavoratori - Deadline Cloud

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esegui gli script come amministratore per configurare i lavoratori

Gli script di configurazione personalizzati del fleet host consentono di eseguire attività amministrative, come l'installazione del software, sui dipendenti della flotta gestiti dal servizio. Questi script vengono eseguiti con privilegi elevati e offrono la flessibilità necessaria per configurare i lavoratori per il sistema.

Deadline Cloud esegue lo script dopo che il lavoratore è entrato nello STARTING stato e prima di eseguire qualsiasi attività.

Importante

Lo script viene eseguito con autorizzazioni elevate, sudo sui Linux sistemi e «Amministratore» sui sistemi. Windows È responsabilità dell'utente assicurarsi che lo script non presenti problemi di sicurezza.

Quando utilizzi uno script di amministrazione, sei responsabile del monitoraggio dello stato della tua flotta.

Gli usi più comuni dello script includono:

  • Installazione di software che richiede l'accesso da amministratore

  • Installazione di Docker contenitori

È possibile creare e aggiornare uno script di configurazione dell'host utilizzando la console o utilizzando il AWS CLI.

Console
  1. Nella pagina dei dettagli della flotta, scegli la scheda Configurazioni.

  2. Nel campo Script, inserisci lo script da eseguire con autorizzazioni elevate. Puoi scegliere Importa per caricare uno script dalla tua workstation.

  3. Imposta un periodo di timeout in secondi per l'esecuzione dello script. Il valore predefinito è 300 secondi (5 minuti).

  4. Scegli Salva modifiche per salvare lo script.

Create with CLI

Utilizzate il seguente AWS CLI comando per creare una flotta con uno script di configurazione dell'host. Sostituisci il placeholder testo con le tue informazioni.

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

Usa il seguente AWS CLI comando per aggiornare lo script di configurazione dell'host di una flotta. Sostituisci il placeholder testo con le tue informazioni.

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

I seguenti script dimostrano:

  • Le variabili di ambiente disponibili per lo script

  • Queste AWS credenziali funzionano nella shell

  • Che lo script sia in esecuzione in una shell con privilegi elevati

Linux

Utilizzate lo script seguente per dimostrare che uno script è in esecuzione con root privilegi:

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

Utilizzate lo PowerShell script seguente per dimostrare che uno script è in esecuzione con privilegi di amministratore:

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

Risoluzione dei problemi relativi agli script di configurazione dell'host

Quando si esegue lo script di configurazione dell'host:

  • In caso di successo: il lavoratore esegue il lavoro

  • In caso di errore (codice di uscita diverso da zero o arresto anomalo):

    • Il lavoratore si spegne

    La flotta avvia automaticamente un nuovo lavoratore utilizzando lo script di configurazione dell'host più recente

Per monitorare lo script:

  1. Apri la pagina della flotta nella console Deadline Cloud.

  2. Scegli Visualizza lavoratori per aprire il monitor Deadline Cloud.

  3. Visualizza lo stato del lavoratore nella pagina di monitoraggio.

Note importanti:

  • I lavoratori che si sono spenti a causa di un errore non sono disponibili nell'elenco dei lavoratori sul monitor. Utilizzate CloudWatch Logs per visualizzare i registri dei lavoratori nel seguente gruppo di registri:

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

    All'interno di quel gruppo di log c'è un flusso di

    worker-ZZZZZ
  • CloudWatch Logs conserva i registri dei lavoratori in base al periodo di conservazione configurato.

Monitoraggio dell'esecuzione dello script di configurazione dell'host

Con gli script di amministrazione per configurare i lavoratori, puoi assumere il pieno controllo di un lavoratore di Deadline Cloud. Puoi installare qualsiasi pacchetto software, riconfigurare i parametri del sistema operativo o montare file system condivisi. Con questa funzionalità avanzata e la capacità di Deadline Cloud di scalare fino a migliaia di lavoratori, ora puoi monitorare se gli script di configurazione vengono eseguiti correttamente o non sono riusciti. Le cause di errore possono includere errori di script, comportamenti instabili o altre situazioni sconosciute.

Consigliamo le seguenti soluzioni per monitorare l'esecuzione degli script di configurazione dell'host.

CloudWatch Monitoraggio dei log

Tutti i log di configurazione del fleet host vengono trasmessi in streaming al gruppo di CloudWatch log della flotta e in particolare al flusso di log di un lavoratore. CloudWatch Ad esempio, /aws/deadline/farm-123456789012/fleet-777788889999 è il gruppo di log per l'azienda agricola123456789012, la flotta. 777788889999

Ad esempio, ogni lavoratore fornisce un flusso di log dedicatoworker-123456789012. I log di configurazione dell'host includono banner di log come Running Host Configuration Script e Finished running Host Configuration Script, codice di uscita: 0. Il codice di uscita dello script è incluso nel banner finito e può essere interrogato utilizzando gli strumenti. CloudWatch

CloudWatch Logs Insights

CloudWatch Logs Insights offre funzionalità avanzate per analizzare le informazioni di registro. Ad esempio, la seguente query di Log Insights analizza il codice di uscita della configurazione dell'host, ordinato per ora:

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

Per ulteriori informazioni su CloudWatch Logs Insights, consulta Analyzing log data with CloudWatch Logs Insights nella Amazon CloudWatch Logs User Guide.

Registrazione strutturata di Worker Agent

Il worker agent di Deadline Cloud pubblica log JSON strutturati su. CloudWatch L'agente di lavoro offre un'ampia gamma di log strutturati per l'analisi dello stato di salute dei lavoratori. Per ulteriori informazioni, consulta Accesso dell'agente di lavoro di Deadline Cloud. GitHub

Gli attributi dei log strutturati vengono decompressi nei campi di Log Insights. È possibile utilizzare questa CloudWatch funzionalità per contare e analizzare gli errori di avvio della configurazione dell'host. Ad esempio, è possibile utilizzare una query count and bin per determinare la frequenza con cui si verificano gli errori:

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 filtri metrici per metriche e allarmi

Puoi configurare filtri metrici per CloudWatch generare metriche dai log. CloudWatch Ciò consente di creare allarmi e dashboard per monitorare l'esecuzione degli script di configurazione dell'host.

Per creare un filtro parametrico
  1. Apri la console. CloudWatch

  2. Nel riquadro di navigazione, scegli Registri, quindi Gruppi di log.

  3. Seleziona il gruppo di log del tuo parco veicoli.

  4. Scegli Crea filtro parametri.

  5. Definite lo schema di filtro utilizzando uno dei seguenti metodi:

    • Per le metriche di successo:

      {$.message = "*Worker Agent host configuration succeeded.*"}
    • Per le metriche degli errori:

      {$.exit_code != 0 && $.message = "*Worker Agent host configuration failed with exit code*"}
  6. Scegli Avanti per creare una metrica con i seguenti valori:

    • Spazio dei nomi metrico: lo spazio dei nomi delle metriche (ad esempio,) MyDeadlineFarm

    • Nome della metrica: il nome della metrica richiesto (ad esempio,) host_config_failure

    • Valore della metrica: 1 (ogni istanza è un conteggio pari a 1)

    • Valore predefinito: lascia vuoto

    • Unità: Count

Dopo aver creato i filtri metrici, puoi configurare gli CloudWatch allarmi standard per intervenire in caso di elevati tassi di errore della configurazione host o aggiungere le metriche a una CloudWatch dashboard per day-to-day le operazioni e il monitoraggio.

Per ulteriori dettagli, consulta Filter and pattern syntax nella Amazon CloudWatch Logs User Guide.