本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
工作主机设置和配置
工作主机是指运行 Deadline Cloud 工作线程的主机。本节介绍如何设置工作主机并根据您的特定需求对其进行配置。每台工作器主机都运行一个名为工作器代理的程序。工作人员代理负责:
-
管理工作人员的生命周期。
-
同步分配的工作、其进度和结果。
-
监控正在运行的工作。
-
将日志转发到已配置的目的地。
我们建议您使用提供的 Deadline Cloud 工作者代理。worker 代理是开源的,我们鼓励您提出功能请求,但您也可以根据自己的需求进行开发和定制。
要完成以下各节中的任务,您需要具备以下条件:
创建和配置 Python 虚拟环境
你可以在上创建 Python 虚拟环境 Linux 如果你已经安装了 Python 3.9 或更高版本并将其放到你的PATH。
注意
On Windows,必须将代理文件安装到 Python 的全局站点包目录中。目前不支持 Python 虚拟环境。
创建和激活 Python 虚拟环境
-
以
root用户身份打开终端(或使用sudo/su)。 -
创建并激活 Python 虚拟环境。
python3 -m venv /opt/deadline/workersource /opt/deadline/worker/bin/activatepip install --upgrade pip
安装 Deadline Cloud
在你设置 Python 并在上创建虚拟环境之后 Linux,安装 Deadline Cloud 工作器代理 Python 包。
安装工作器代理 Python 软件包
当你的 Windows 工作主机需要长路径名(超过 250 个字符),您必须按如下方式启用长路径名:
-
确保已启用长路径注册表项。有关更多信息,请参阅在 Microsoft 网站上启用日志路径的注册表设置
。 -
安装 Windows 适用于桌面 C++ x86 应用程序的软件开发工具包。有关更多信息,请参阅 。Windows
中的 SDK Windows 开发者中心。 -
在您的环境中打开安装工作器代理的 Python 安装位置。默认值为
C:\Program Files\Python311。有一个名为的可执行文件pythonservice.exe。 -
在同一位置创建一个
pythonservice.exe.manifest名为的新文件。添加以下内容:<?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> -
打开命令提示符并在您创建的清单文件所在的位置运行以下命令:
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x86\mt.exe" -manifest pythonservice.exe.manifest -outputresource:pythonservice.exe;#1您应该可以看到类似于如下所示的输出内容:
Microsoft (R) Manifest Tool Copyright (c) Microsoft Corporation. All rights reserved.
现在,工作人员可以访问长路径了。要进行清理,请删除pythonservice.exe.manifest文件并卸载 SDK。
配置 Deadline 云端工作器代理
您可以通过三种方式配置 Deadline Cloud 工作器代理设置。我们建议您通过运行该install-deadline-worker工具来使用操作系统设置。
工作器代理不支持在 Windows 上以域用户身份运行。要以域用户身份运行作业,可以在为运行作业配置队列用户时指定域用户帐户。有关更多信息,请参阅 Deadline Cloud 用户指南中 Deadline Cloud 队列中的步骤 7。AWS
命令行参数 — 当从命令行运行 Deadline Cloud 工作器代理时,您可以指定参数。某些配置设置无法通过命令行参数获得。要查看所有可用的命令行参数,请输入deadline-worker-agent --help。
环境变量 — 您可以通过设置以开头的环境变量来配置 Deadline Cloud 工作器代理DEADLINE_WORKER_。例如,要查看所有可用的命令行参数,可以export DEADLINE_WORKER_VERBOSE=true用来将工作代理的输出设置为详细。有关更多示例和信息,请参/etc/amazon/deadline/worker.toml.example阅 Linux 或者C:\ProgramData\Amazon\Deadline\Config\worker.toml.example开启 Windows.
配置文件-安装工作器代理时,它会创建一个位于/etc/amazon/deadline/worker.toml上的配置文件 Linux 或者C:\ProgramData\Amazon\Deadline\Config\worker.toml开启 Windows。 工作器代理在启动时加载此配置文件。你可以使用示例配置文件(/etc/amazon/deadline/worker.toml.exampleon Linux 或者C:\ProgramData\Amazon\Deadline\Config\worker.toml.example开启 Windows),根据您的特定需求定制默认工作器代理配置文件。
最后,我们建议您在部署软件并按预期运行后,为工作器代理启用 auto shutdown。这使工作人员队伍能够在需要时扩大规模,并在作业完成时关闭。自动缩放有助于确保您只使用所需的资源。要使由 auto Scaling 组启动的实例能够关闭,您必须将其shutdown_on_stop=true添加到worker.toml配置文件中。
启用 auto 关机
作为root用户:
-
安装带有参数的工作器代理
--allow-shutdown。
创建作业用户和群组
本节介绍代理用户与队列中jobRunAsUser定义的用户之间所需的用户和组关系。
Deadline Cloud 工作服务器代理应在主机上以代理专用用户身份运行。您应配置 Deadline Cloud 队列的jobRunAsUser属性,以便工作人员以特定的操作系统用户和组的身份运行队列作业。这意味着您可以控制作业拥有的共享文件系统权限。它还提供了作业和工作代理用户之间的重要安全边界。
Linux 工作用户和群组
要设置本地工作人员代理用户和jobRunAsUser,请确保满足以下要求。如果您使用的是 Linux 可插拔身份验证模块 (PAM),例如 Active Directory 或 LDAP,则过程可能会有所不同。
工作器代理用户和共享jobRunAsUser组是在安装工作器代理时设置的。默认值为deadline-worker-agent和deadline-job-users,但可以在安装工作器代理时对其进行更改。
install-deadline-worker \ --userAGENT_USER_NAME\ --groupJOB_USERS_GROUP
命令应以 root 用户身份运行。
-
每个组都
jobRunAsUser应该有一个匹配的主组。使用adduser命令创建用户通常会创建匹配的主组。adduser -r -mjobRunAsUser -
的主组
jobRunAsUser是工作代理用户的辅助组。共享组允许工作器代理在作业运行时向其提供文件。usermod -a -GjobRunAsUserdeadline-worker-agent -
jobRunAsUser必须是共享工作组的成员。usermod -a -Gdeadline-job-usersjobRunAsUser -
jobRunAsUser不得属于工作代理用户的主组。工作器代理写入的敏感文件归代理的主组所有。如果 ajobRunAsUser属于该组,则工作器上运行的作业可以访问工作器代理文件。 -
默认值 AWS 区域 必须与工作人员所属服务器场的区域相匹配。这应适用于工作人员的所有
jobRunAsUser账户。sudo -ujobRunAsUseraws configure set default.regionaws-region -
工作代理用户必须能够以. 的身份运行
sudo命令jobRunAsUser。运行以下命令打开编辑器以创建新的 sudoers 规则:visudo -f /etc/sudoers.d/deadline-worker-job-user将以下内容添加到文件中:
# 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
下图说明了代理用户与队列关联的jobRunAsUser用户和群组之间的关系。
Windows 用户
要使用 Windows 作为用户jobRunAsUser,它必须满足以下要求:
-
所有队列
jobRunAsUser用户都必须存在。 -
他们的密码必须与队列
JobRunAsUser字段中指定的密钥值相匹配。有关说明,请参阅 Deadline Cloud 用户指南中 Deadline Cloud 队列中的第 7 步。AWS -
代理用户必须能够以这些用户的身份登录。