View a markdown version of this page

Configuration et configuration de l'hôte Worker - Deadline Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration et configuration de l'hôte Worker

Un serveur de travail fait référence à une machine hôte qui exécute un serveur de Deadline Cloud. Cette section explique comment configurer l'hôte de travail et le configurer en fonction de vos besoins spécifiques. Chaque hôte de travail exécute un programme appelé agent de travail. L'agent des travailleurs est chargé de :

  • Gérer le cycle de vie des travailleurs.

  • Synchronisation du travail assigné, de son avancement et de ses résultats.

  • Surveillance des travaux en cours.

  • Transfert des journaux vers des destinations configurées.

Nous vous recommandons d'utiliser l'agent de travail Deadline Cloud fourni. L'agent de travail est open source et nous encourageons les demandes de fonctionnalités, mais vous pouvez également le développer et le personnaliser en fonction de vos besoins.

Pour effectuer les tâches des sections suivantes, vous avez besoin des éléments suivants :

Linux
  • Instance Linux basée sur Amazon Elastic Compute Cloud (Amazon EC2). Nous recommandons Amazon Linux 2023.

  • sudoprivilèges

  • Python 3.9 ou supérieur

Windows
  • Instance Windows basée sur Amazon Elastic Compute Cloud (Amazon EC2). Nous recommandons Windows Server 2022

  • Accès administrateur à l'hôte du travailleur

  • Python 3.9 ou supérieur installé pour tous les utilisateurs

Création et configuration d'un environnement virtuel Python

Vous pouvez créer un environnement virtuel Python Linux si vous avez installé Python 3.9 ou supérieur et si vous l'avez placé dans votrePATH.

Note

ActivéWindows, les fichiers d'agent doivent être installés dans le répertoire global site-packages de Python. Les environnements virtuels Python ne sont actuellement pas pris en charge.

Pour créer et activer un environnement virtuel Python
  1. Ouvrez un terminal en tant qu'rootutilisateur (ou utilisezsudo/su).

  2. Créez et activez un environnement virtuel Python.

    python3 -m venv /opt/deadline/worker source /opt/deadline/worker/bin/activate pip install --upgrade pip

Installez l'agent Deadline Cloud Worker

Après avoir configuré votre Python et créé un environnement virtuelLinux, installez les packages Python de l'agent de travail Deadline Cloud.

Pour installer les packages Python de l'agent de travail

Linux
  1. Ouvrez un terminal en tant qu'rootutilisateur (ou utilisezsudo/su).

  2. Téléchargez et installez les packages d'agents Deadline Cloud Worker depuis PyPI :

    /opt/deadline/worker/bin/python -m pip install deadline-cloud-worker-agent
Windows
  1. Ouvrez une invite de commande ou un PowerShell terminal d'administrateur.

  2. Téléchargez et installez les packages d'agents Deadline Cloud Worker depuis PyPI :

    python -m pip install deadline-cloud-worker-agent

Lorsque votre serveur Windows de travail nécessite des noms de chemin longs (supérieurs à 250 caractères), vous devez activer les noms de chemin longs comme suit :

  1. Assurez-vous que la clé de registre Long Path est activée. Pour plus d'informations, consultez la section Configuration du registre pour activer les chemins de journalisation sur le site Web de Microsoft.

  2. Installez le Windows SDK pour les applications de bureau C++ x86. Pour plus d'informations, consultez la section Windows SDK dans le Windows Dev Center.

  3. Ouvrez l'emplacement d'installation de Python dans votre environnement dans lequel l'agent de travail est installé. La valeur par défaut est C:\Program Files\Python311. Il existe un fichier exécutable nommépythonservice.exe.

  4. Créez un nouveau fichier appelé pythonservice.exe.manifest au même emplacement. Ajouter ce qui suit :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" name="pythonservice" processorArchitecture="x86" version="1.0.0.0"/> <application xmlns="urn:schemas-microsoft-com:asm.v3"> <windowsSettings> <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware> </windowsSettings> </application> </assembly>
  5. Ouvrez une invite de commande et exécutez la commande suivante à l'emplacement du fichier manifeste que vous avez créé :

    "C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x86\mt.exe" -manifest pythonservice.exe.manifest -outputresource:pythonservice.exe;#1

    Vous devez voir des résultats similaires à ce qui suit :

    Microsoft (R) Manifest Tool Copyright (c) Microsoft Corporation. All rights reserved.

Le travailleur peut désormais accéder à de longs chemins. Pour nettoyer, supprimez le pythonservice.exe.manifest fichier et désinstallez le SDK.

Configuration de l'agent Deadline Cloud Worker

Vous pouvez configurer les paramètres de l'agent Deadline Cloud Worker de trois manières. Nous vous recommandons d'utiliser la configuration du système d'exploitation en exécutant l'install-deadline-workeroutil.

Arguments de ligne de commande  : vous pouvez spécifier des arguments lorsque vous exécutez l'agent Deadline Cloud Worker depuis la ligne de commande. Certains paramètres de configuration ne sont pas disponibles via des arguments de ligne de commande. Pour voir tous les arguments de ligne de commande disponibles, entrezdeadline-worker-agent --help.

Variables d'environnement  : vous pouvez configurer l'agent de travail Deadline Cloud en définissant la variable d'environnement en commençant parDEADLINE_WORKER_. Par exemple, pour voir tous les arguments de ligne de commande disponibles, vous pouvez utiliser export DEADLINE_WORKER_VERBOSE=true pour définir la sortie de l'agent de travail sur verbeuse. Pour plus d'exemples et d'informations, voir /etc/amazon/deadline/worker.toml.example sur Linux ou C:\ProgramData\Amazon\Deadline\Config\worker.toml.example surWindows.

Fichier de configuration  : lorsque vous installez l'agent de travail, il crée un fichier de configuration situé /etc/amazon/deadline/worker.toml sur Linux ou C:\ProgramData\Amazon\Deadline\Config\worker.toml surWindows. L'agent de travail charge ce fichier de configuration au démarrage. Vous pouvez utiliser l'exemple de fichier de configuration (/etc/amazon/deadline/worker.toml.exampleactivé Linux ou C:\ProgramData\Amazon\Deadline\Config\worker.toml.example activéWindows) pour adapter le fichier de configuration de l'agent de travail par défaut à vos besoins spécifiques.

Enfin, nous vous recommandons d'activer l'arrêt automatique pour l'agent de travail une fois que votre logiciel est déployé et fonctionne comme prévu. Cela permet à la flotte de travailleurs d'augmenter en cas de besoin et de s'arrêter lorsqu'une tâche est terminée. La mise à l'échelle automatique permet de s'assurer que vous n'utilisez que les ressources nécessaires. Pour activer l'arrêt d'une instance démarrée par le groupe Auto Scaling, vous devez l'ajouter shutdown_on_stop=true au fichier worker.toml de configuration.

Pour activer l'arrêt automatique

En tant qu'rootutilisateur :

  • Installez l'agent de travail avec des paramètres--allow-shutdown.

    Linux

    Entrez :

    /opt/deadline/worker/bin/install-deadline-worker \ --farm-id FARM_ID \ --fleet-id FLEET_ID \ --region REGION \ --allow-shutdown
    Windows

    Entrez :

    install-deadline-worker ^ --farm-id FARM_ID ^ --fleet-id FLEET_ID ^ --region REGION ^ --allow-shutdown

Création d'utilisateurs et de groupes de tâches

Cette section décrit la relation utilisateur et groupe requise entre l'utilisateur de l'agent et les personnes jobRunAsUser définies dans vos files d'attente.

L'agent Deadline Cloud Worker doit s'exécuter en tant qu'utilisateur dédié spécifique à l'agent sur l'hôte. Vous devez configurer la jobRunAsUser propriété des files d'attente Deadline Cloud afin que les collaborateurs exécutent les tâches de file d'attente en tant qu'utilisateur et groupe de système d'exploitation spécifiques. Cette configuration vous permet de contrôler les autorisations du système de fichiers partagé dont disposent vos tâches. Il constitue également une frontière de sécurité importante entre vos tâches et l'utilisateur de l'agent de travail.

Linuxutilisateurs d'emplois et groupes

Pour configurer un agent de travail localjobRunAsUser, utilisez et assurez-vous de répondre aux exigences suivantes. Si vous utilisez un module d'authentification enfichable (PAM) Linux tel qu'Active Directory ou LDAP, votre procédure peut être différente.

L'utilisateur de l'agent de travail et le jobRunAsUser groupe partagé sont définis lorsque vous installez l'agent de travail. Les valeurs par défaut sont deadline-worker-agent etdeadline-job-users, mais vous pouvez les modifier lorsque vous installez l'agent de travail.

install-deadline-worker \ --user AGENT_USER_NAME \ --group JOB_USERS_GROUP

Les commandes doivent être exécutées en tant qu'utilisateur root.

  • Chacun jobRunAsUser doit avoir un groupe principal correspondant. La création d'un utilisateur à l'aide de la adduser commande crée généralement un groupe principal correspondant.

    adduser -r -m jobRunAsUser
  • Le groupe principal de jobRunAsUser est un groupe secondaire destiné à l'utilisateur de l'agent de travail. Le groupe partagé permet à l'agent de travail de mettre des fichiers à la disposition de la tâche pendant son exécution.

    usermod -a -G jobRunAsUser deadline-worker-agent
  • jobRunAsUserIl doit être membre du groupe de tâches partagé.

    usermod -a -G deadline-job-users jobRunAsUser
  • jobRunAsUserIl ne doit pas appartenir au groupe principal de l'utilisateur de l'agent de travail. Les fichiers sensibles écrits par l'agent subordonné appartiennent au groupe principal de l'agent. Si a jobRunAsUser fait partie de ce groupe, les fichiers de l'agent de travail peuvent être accessibles aux tâches exécutées sur le travailleur.

  • La valeur par défaut Région AWS doit correspondre à la région de la ferme à laquelle appartient le travailleur. Appliquez ce paramètre à tous les jobRunAsUser comptes du collaborateur.

    sudo -u jobRunAsUser aws configure set default.region aws-region
  • L'utilisateur de l'agent de travail doit être capable d'exécuter sudo des commandes en tant quejobRunAsUser. Exécutez la commande suivante pour ouvrir un éditeur afin de créer une nouvelle règle sudoers :

    visudo -f /etc/sudoers.d/deadline-worker-job-user

    Ajoutez ce qui suit au fichier :

    # Allows the Deadline Cloud worker agent OS user to run commands # as the queue OS user without requiring a password. deadline-worker-agent ALL=(jobRunAsUser) NOPASSWD:ALL

Le schéma suivant illustre la relation entre l'utilisateur de l'agent et les jobRunAsUser utilisateurs et les groupes pour les files d'attente associées à la flotte.

Illustration de la relation entre les agents-utilisateurs et les personnes jobRunAsUser en attente.

Utilisateurs Windows

Pour utiliser un Windows utilisateur en tant quejobRunAsUser, celui-ci doit répondre aux exigences suivantes :

  • Tous les jobRunAsUser utilisateurs de la file d'attente doivent exister.

  • Leurs mots de passe doivent correspondre à la valeur du secret spécifié dans le JobRunAsUser champ de leur file d'attente. Pour obtenir des instructions, reportez-vous à l'étape 7 de la section Files d'attente de Deadline Cloud dans le Guide de l'utilisateur de AWS Deadline Cloud.

  • L'agent-utilisateur doit être en mesure de se connecter en tant que ces utilisateurs.

Sécurisation de votre hôte travailleur

Lorsque vous configurez votre serveur de travail, suivez les meilleures pratiques de sécurité pour protéger les informations sensibles et maintenir des contrôles d'accès appropriés.

Configuration des autorisations relatives aux dossiers de journalisation

L'agent de travail écrit des fichiers journaux qui peuvent contenir des informations sensibles provenant des scripts de configuration de l'hôte et de l'exécution des tâches. La install-deadline-worker commande crée le répertoire des journaux avec des autorisations sécurisées. Si vous devez créer le répertoire manuellement avant l'installation, utilisez les procédures suivantes pour faire correspondre les autorisations utilisées par les flottes gérées par les services :

Linux
Pour configurer les autorisations du répertoire des journaux sur Linux
  1. Créez le répertoire des journaux :

    sudo mkdir -p /var/log/amazon/deadline
  2. Définissez le propriétaire et le groupe comme utilisateur de l'agent de travail :

    sudo chown -R deadline-worker-agent:deadline-worker-agent /var/log/amazon/deadline
  3. Définissez les autorisations sur 750 :

    sudo chmod -R 750 /var/log/amazon/deadline

    Ces autorisations garantissent que seuls l'utilisateur et le groupe de l'agent de travail peuvent accéder aux fichiers journaux, empêchant ainsi les utilisateurs du job et les autres utilisateurs non autorisés de lire des informations potentiellement sensibles.

Windows
Pour configurer les autorisations du répertoire des journaux sur Windows
  1. Ouvrez un PowerShell terminal d'administrateur.

  2. Créez le répertoire des journaux :

    New-Item -ItemType Directory -Force -Path "$env:PROGRAMDATA\Amazon\Deadline\Logs"
  3. Configurez des ACL restreintes pour autoriser uniquement l'utilisateur de l'agent de travail et les administrateurs à :

    $acl = Get-Acl "$env:PROGRAMDATA\Amazon\Deadline\Logs" $acl.SetAccessRuleProtection($true, $false) $acl.Access | ForEach-Object { $acl.RemoveAccessRule($_) } $agentRule = New-Object System.Security.AccessControl.FileSystemAccessRule("deadline-worker", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow") $adminRule = New-Object System.Security.AccessControl.FileSystemAccessRule("Administrators", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow") $acl.AddAccessRule($agentRule) $acl.AddAccessRule($adminRule) Set-Acl "$env:PROGRAMDATA\Amazon\Deadline\Logs" $acl

    Ces commandes limitent l'accès au répertoire des journaux à l'utilisateur de l'agent de travail et au groupe d'administrateurs uniquement, empêchant ainsi les utilisateurs du job et les autres utilisateurs non autorisés de lire des informations potentiellement sensibles.