View a markdown version of this page

Ejecute scripts de configuración del host con privilegios de administrador - Deadline Cloud

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejecute scripts de configuración del host con privilegios de administrador

Los scripts de configuración del host le permiten realizar tareas administrativas, como la instalación de software, en los trabajadores de su flota gestionada por el servicio. Estos scripts se ejecutan con privilegios elevados (sudoactivadosLinux, administrador activadoWindows), lo que le brinda la flexibilidad de configurar a los trabajadores para su sistema.

Deadline Cloud ejecuta el script después de que el trabajador entre en el STARTING estado y antes de que ejecute cualquier tarea.

El script se ejecuta después de que Deadline Cloud haya configurado las licencias basadas en el uso (UBL). Deadline Cloud establece las variables del entorno de la licencia UBL cuando se lanza la instancia de trabajo, antes de que se inicie el agente de trabajo. A continuación, el agente de trabajo ejecuta el script de configuración del host. La configuración automática de UBL no sobrescribe las variables de entorno que establece el script: las variables de licencia que establece el script en todo el sistema tienen prioridad para los trabajos que ejecuta el trabajador. Para obtener más información sobre las opciones de licencia, consulte. Uso de licencias de software con Deadline Cloud

importante

El script se ejecuta con permisos elevados. Es su responsabilidad asegurarse de que el script no presente ningún problema de seguridad.

Cuando utiliza un script de configuración del host, es responsable de supervisar el estado de su flota.

Los usos comunes de los scripts de configuración de hosts incluyen:

Puede crear y actualizar un script de configuración del host mediante la consola o mediante el. AWS CLI

Console
  1. En la página de detalles de la flota, seleccione la pestaña Configuraciones.

  2. En el campo Secuencia de comandos, introduzca la secuencia de comandos que desea ejecutar con permisos elevados. Puede elegir Importar para cargar un script desde su estación de trabajo.

  3. Establezca un período de tiempo de espera en segundos para ejecutar el script. El valor predeterminado es 300 segundos (5 minutos).

  4. Seleccione Guardar cambios para guardar el script.

Create with CLI

Utilice el siguiente AWS CLI comando para crear una flota con un script de configuración del host. Sustituya el placeholder texto por su información.

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

Utilice el siguiente AWS CLI comando para actualizar el script de configuración del host de una flota. Sustituya el placeholder texto por su información.

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

Los siguientes guiones muestran lo siguiente:

  • Las variables de entorno disponibles para el script

  • Esas AWS credenciales funcionan en el shell

  • Que el script se ejecuta en un shell elevado

Linux

Utilice el siguiente script para mostrar que un script se está ejecutando con root privilegios:

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

Utilice el siguiente PowerShell script para mostrar que un script se está ejecutando con privilegios de administrador:

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

Solucione problemas con los scripts de configuración del host

Al ejecutar el script de configuración del host:

  • En caso de éxito: el trabajador ejecuta el trabajo

  • En caso de error (código de salida distinto de cero o fallo):

    • El trabajador cierra

    La flota lanza automáticamente un nuevo trabajador mediante el script de configuración del host más reciente

Para supervisar el script:

  1. Abra la página de la flota en la consola de Deadline Cloud.

  2. Seleccione Ver trabajadores para abrir el monitor de Deadline Cloud.

  3. Vea el estado del trabajador en la página del monitor.

sugerencia

Al probar los scripts de configuración del host, defina el número máximo de trabajadores de la flota en 1 para evitar iniciar varios trabajadores mientras se repite el script.

Notas importantes:

  • Los trabajadores que dejan de trabajar debido a un error no están disponibles en la lista de trabajadores del monitor. Utilice CloudWatch los registros para ver los registros de los trabajadores en el siguiente grupo de registros:

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

    Dentro de ese grupo de registros, busque una secuencia con el nombreworker-ZZZZZ.

  • CloudWatch Logs conserva los registros de los trabajadores de acuerdo con el período de retención configurado.

Supervise la ejecución del script de configuración del host

Con los scripts de configuración del host, puede tomar el control total de un trabajador de Deadline Cloud. Puede instalar cualquier paquete de software, reconfigurar los parámetros del sistema operativo o montar sistemas de archivos compartidos. Con esta función avanzada y la capacidad de Deadline Cloud de adaptarse a miles de trabajadores, puede supervisar si los scripts de configuración se ejecutan correctamente o no.

Recomendamos las siguientes soluciones para supervisar la ejecución de los scripts de configuración del host.

CloudWatch Supervisión de registros

Todos los registros de configuración de los hosts de la flota se transmiten al grupo de CloudWatch registros de la flota y, específicamente, al flujo de CloudWatch registros de un trabajador. Por ejemplo, /aws/deadline/farm-123456789012/fleet-777788889999 es el grupo de registros para la granja 123456789012 o la flota777788889999.

Cada trabajador aprovisiona un flujo de registros dedicado, por ejemploworker-123456789012. Los registros de configuración del host incluyen anuncios de registro como En ejecución del script de configuración del host y Se terminó de ejecutar el script de configuración del host, con el código de salida: 0. El código de salida del script se incluye en el encabezado final y se puede consultar mediante CloudWatch herramientas.

CloudWatch Registra información

CloudWatch Logs Insights ofrece funciones avanzadas para analizar la información de los registros. Por ejemplo, la siguiente consulta de Log Insights analiza el código de salida de la configuración del host, ordenado por hora:

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

Para obtener más información sobre CloudWatch Logs Insights, consulte Análisis de datos de registro con CloudWatch Logs Insights en la guía del usuario de Amazon CloudWatch Logs.

Registro estructurado de Worker Agent

El agente de trabajo de Deadline Cloud publica los registros JSON estructurados en CloudWatch. El agente de trabajo ofrece muchos registros estructurados para analizar el estado de los trabajadores. Para obtener más información, consulte Inicio de sesión del agente trabajador de Deadline Cloud GitHub.

Los atributos de los registros estructurados se desempaquetan en campos de Log Insights. Puede usar esta CloudWatch función para contar y analizar los errores de inicio de la configuración del host. Por ejemplo, se puede usar una consulta de recuento y agrupamiento para determinar la frecuencia con la que se producen los errores:

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 filtros métricos para métricas y alarmas

Puede configurar filtros CloudWatch métricos para generar CloudWatch métricas a partir de los registros. Los filtros métricos permiten crear alarmas y paneles para supervisar la ejecución del script de configuración del host.

Para crear un filtro de métricas
  1. Abra la CloudWatch consola.

  2. En el panel de navegación, elija Registros y, a continuación, Registrar grupos.

  3. Selecciona el grupo de registros de tu flota.

  4. Elija Create metric filter (Crear filtro de métricas).

  5. Defina su patrón de filtros mediante una de las siguientes opciones:

    • Para conocer las métricas de éxito:

      {$.message = "*Worker Agent host configuration succeeded.*"}
    • Para las métricas de fracaso:

      {$.exit_code != 0 && $.message = "*Worker Agent host configuration failed with exit code*"}
  6. Seleccione Siguiente para crear una métrica con los siguientes valores:

    • Espacio de nombres métrico: su espacio de nombres métrico (por ejemplo,) MyDeadlineFarm

    • Nombre de la métrica: el nombre de la métrica solicitada (por ejemplo,) host_config_failure

    • Valor métrico: 1 (cada instancia es un recuento de 1)

    • Valor predeterminado: Dejar vacío

    • Unidad: Count

Tras crear los filtros métricos, puede configurar CloudWatch las alarmas estándar para actuar en caso de que las tasas de error en la configuración de los hosts sean elevadas o añadir las métricas a un CloudWatch panel de control para las operaciones y la supervisión diarias.

Para obtener más información, consulte la sintaxis de filtros y patrones en la guía del usuario de Amazon CloudWatch Logs.