View a markdown version of this page

Exécuter des scripts de configuration de l'hôte avec des privilèges d'administrateur - 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.

Exécuter des scripts de configuration de l'hôte avec des privilèges d'administrateur

Les scripts de configuration de l'hôte vous permettent d'effectuer des tâches administratives, telles que l'installation de logiciels, sur le personnel de votre parc géré par les services. Ces scripts s'exécutent avec des privilèges élevés (sudoactivéLinux, administrateur activéWindows), ce qui vous permet de configurer vos travailleurs en fonction de votre système.

Deadline Cloud exécute le script une fois que le travailleur est entré dans l'STARTINGétat et avant qu'il n'exécute des tâches.

Le script s'exécute une fois que Deadline Cloud a configuré les licences basées sur l'utilisation (UBL). Deadline Cloud définit les variables d'environnement de licence UBL au lancement de l'instance de travail, avant que l'agent de travail ne démarre, et que l'agent de travail exécute ensuite votre script de configuration hôte. La configuration automatique de l'UBL ne remplace pas les variables d'environnement définies par votre script : les variables de licence définies par votre script à l'échelle du système ont la priorité pour les tâches exécutées par le travailleur. Pour plus d'informations sur les options de licence, consultezUtilisation de licences logicielles avec Deadline Cloud.

Important

Le script s'exécute avec des autorisations élevées. Il est de votre responsabilité de vous assurer que le script n'introduit aucun problème de sécurité.

Lorsque vous utilisez un script de configuration hôte, vous êtes responsable de la surveillance de l'état de santé de votre flotte.

Les utilisations courantes des scripts de configuration de l'hôte sont les suivantes :

Vous pouvez créer et mettre à jour un script de configuration d'hôte à l'aide de la console ou du AWS CLI.

Console
  1. Sur la page des détails de la flotte, choisissez l'onglet Configurations.

  2. Dans le champ Script, saisissez le script à exécuter avec des autorisations élevées. Vous pouvez choisir Importer pour charger un script depuis votre poste de travail.

  3. Définissez un délai d'attente en secondes pour l'exécution du script. La valeur par défaut est de 300 secondes (5 minutes).

  4. Choisissez Enregistrer les modifications pour enregistrer le script.

Create with CLI

Utilisez la AWS CLI commande suivante pour créer une flotte avec un script de configuration hôte. Remplacez le placeholder texte par vos informations.

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

Utilisez la AWS CLI commande suivante pour mettre à jour le script de configuration hôte d'une flotte. Remplacez le placeholder texte par vos informations.

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

Les scripts suivants le montrent :

  • Les variables d'environnement disponibles pour le script

  • Ces AWS informations d'identification fonctionnent dans le shell

  • Que le script s'exécute dans un shell surélevé

Linux

Utilisez le script suivant pour montrer qu'un script est exécuté avec des root privilèges :

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

Utilisez le PowerShell script suivant pour montrer qu'un script est en cours d'exécution avec des privilèges d'administrateur :

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

Résoudre les problèmes liés aux scripts de configuration des hôtes

Lorsque vous exécutez le script de configuration de l'hôte :

  • En cas de succès : le travailleur gère le travail

  • En cas d'échec (code de sortie différent de zéro ou crash) :

    • Le travailleur arrête

    La flotte lance automatiquement un nouveau travailleur à l'aide du dernier script de configuration de l'hôte

Pour surveiller le script :

  1. Ouvrez la page de la flotte dans la console Deadline Cloud.

  2. Choisissez Afficher les travailleurs pour ouvrir le moniteur Deadline Cloud.

  3. Consultez le statut du travailleur sur la page du moniteur.

Astuce

Lorsque vous testez des scripts de configuration hôte, définissez le nombre maximum de travailleurs de la flotte sur 1 pour éviter de démarrer plusieurs travailleurs pendant l'itération du script.

Remarques importantes :

  • Les travailleurs qui se sont arrêtés en raison d'une erreur ne sont pas disponibles dans la liste des travailleurs sur le moniteur. Utilisez CloudWatch Logs pour afficher les journaux des travailleurs dans le groupe de journaux suivant :

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

    Dans ce groupe de journaux, recherchez un flux nomméworker-ZZZZZ.

  • CloudWatch Logs conserve les journaux des employés en fonction de la période de rétention que vous avez configurée.

Surveiller l'exécution du script de configuration de l'hôte

Grâce aux scripts de configuration de l'hôte, vous pouvez prendre le contrôle total d'un collaborateur de Deadline Cloud. Vous pouvez installer n'importe quel package logiciel, reconfigurer les paramètres du système d'exploitation ou monter des systèmes de fichiers partagés. Grâce à cette fonctionnalité avancée et à la capacité de Deadline Cloud à s'adapter à des milliers de travailleurs, vous pouvez contrôler si les scripts de configuration sont exécutés avec succès ou en échec.

Nous recommandons les solutions suivantes pour surveiller l'exécution des scripts de configuration de l'hôte.

CloudWatch Surveillance des journaux

Tous les journaux de configuration des hôtes de la flotte sont transmis au groupe de CloudWatch journaux de la flotte, et plus particulièrement au flux de CloudWatch journaux d'un travailleur. Par exemple, /aws/deadline/farm-123456789012/fleet-777788889999 il s'agit du groupe de journaux pour la ferme123456789012, la flotte777788889999.

Chaque travailleur fournit un flux de journaux dédié, par exempleworker-123456789012. Les journaux de configuration de l'hôte incluent des bannières de journal telles que Exécution du script de configuration de l'hôte et Fin de l'exécution du script de configuration de l'hôte, code de sortie : 0. Le code de sortie du script est inclus dans la bannière terminée et peut être interrogé à l'aide d' CloudWatch outils.

CloudWatch Informations sur les journaux

CloudWatch Logs Insights offre des fonctionnalités avancées pour analyser les informations des journaux. Par exemple, la requête Log Insights suivante analyse le code de sortie de la configuration de l'hôte, trié par heure :

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

Pour plus d'informations sur CloudWatch Logs Insights, consultez la section Analyse des données des CloudWatch journaux avec Logs Insights dans le guide de l'utilisateur Amazon CloudWatch Logs.

Journalisation structurée des agents de travail

L'agent Deadline Cloud Worker publie des journaux JSON structurés sur CloudWatch. L'agent de travail propose de nombreux journaux structurés pour analyser la santé des travailleurs. Pour plus d'informations, consultez la section Connexion de l'agent Deadline Cloud Worker GitHub.

Les attributs des journaux structurés sont déballés dans les champs de Log Insights. Vous pouvez utiliser cette CloudWatch fonctionnalité pour compter et analyser les échecs de démarrage de la configuration hôte. Par exemple, une requête Count and Bin peut être utilisée pour déterminer la fréquence des pannes :

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 filtres métriques pour les mesures et les alarmes

Vous pouvez configurer des filtres de CloudWatch métriques pour générer des CloudWatch métriques à partir des journaux. Les filtres métriques vous permettent de créer des alarmes et des tableaux de bord pour surveiller l'exécution des scripts de configuration de l'hôte.

Pour créer un filtre de métrique
  1. Ouvrez la CloudWatch console.

  2. Dans le volet de navigation, choisissez Journaux, puis Groupes de journaux.

  3. Sélectionnez le groupe de journaux de votre flotte.

  4. Choisissez Créer un filtre de métriques.

  5. Définissez votre modèle de filtre à l'aide de l'une des méthodes suivantes :

    • Pour les indicateurs de réussite :

      {$.message = "*Worker Agent host configuration succeeded.*"}
    • Pour les indicateurs de défaillance :

      {$.exit_code != 0 && $.message = "*Worker Agent host configuration failed with exit code*"}
  6. Cliquez sur Suivant pour créer une métrique avec les valeurs suivantes :

    • Espace de noms métrique : votre espace de noms métrique (par exemple,) MyDeadlineFarm

    • Nom de la métrique : nom de la métrique que vous avez demandé (par exemple,host_config_failure)

    • Valeur métrique : 1 (chaque instance compte 1)

    • Valeur par défaut : Laisser vide

    • Unité : Count

Après avoir créé des filtres de mesures, vous pouvez configurer des CloudWatch alarmes standard pour prendre des mesures en cas de taux d'échec élevés de la configuration des hôtes, ou ajouter les mesures à un CloudWatch tableau de bord pour les opérations et la surveillance quotidiennes.

Pour plus de détails, consultez la section Syntaxe des filtres et des modèles dans le guide de l'utilisateur Amazon CloudWatch Logs.