本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
工作主机设置和配置
工作主机是指运行 Deadline Cloud 工作程序的主机。本节介绍如何设置工作主机并根据您的特定需求对其进行配置。每个工作主机都运行一个名为工作器代理的程序。工作人员代理负责:
-
管理员工生命周期。
-
同步分配的工作、其进度和结果。
-
监控运行中的工作。
-
将日志转发到配置的目的地。
我们建议您使用提供的 Deadline Cloud 工作者代理。Worker Agent 是开源的,我们鼓励您提出功能请求,但您也可以根据自己的需求进行开发和自定义。
要完成以下部分中的任务,您需要满足以下条件:
创建和配置 Python 虚拟环境
Linux如果您已安装 Python 3.9 或更高版本并将其放置在您的中,则可以在上创建 Python 虚拟环境PATH。
注意
开启Windows,必须将代理文件安装到 Python 的全局站点包目录中。目前不支持 Python 虚拟环境。
创建和激活 Python 虚拟环境
-
以
root用户身份打开终端(或使用sudo/su)。 -
创建并激活 Python 虚拟环境。
python3 -m venv /opt/deadline/workersource /opt/deadline/worker/bin/activatepip install --upgrade pip
安装 Deadline 云工作者代理
设置 Python 并在其上创建虚拟环境后Linux,安装 Deadline Cloud 工作代理 Python 软件包。
安装工作代理 Python 包
当您的Windows工作主机需要长路径名(大于 250 个字符)时,必须按如下方式启用长路径名:
-
确保长路径注册表项已启用。有关更多信息,请参阅注册表设置以
在 Microsoft 网站上启用日志路径。 -
安装桌面 C++ x86 应用程序的Windows软件开发工具包。有关更多信息,请参阅Windows开发中心中的
Windows SDK。 -
在安装工作器代理的环境中打开 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 Cloud 工作器代理
您可以通过三种方式配置 Deadline Cloud 工作器代理设置。我们建议您通过运行该install-deadline-worker工具来使用操作系统设置。
命令行参数 -当您从命令行运行 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 on Linux 或 C:\ProgramData\Amazon\Deadline\Config\worker.toml on 的配置文件Windows。工作器代理在启动时加载此配置文件。您可以使用示例配置文件(/etc/amazon/deadline/worker.toml.example开启Linux或打开Windows)C:\ProgramData\Amazon\Deadline\Config\worker.toml.example根据您的特定需求定制默认工作器代理配置文件。
最后,我们建议您在部署软件并按预期运行后启用工作器代理的自动关机。这允许工作人员队伍在需要时扩大规模,并在工作完成时关闭。自动缩放有助于确保您仅使用所需的资源。要使由 auto Scaling 组启动的实例能够关闭,必须shutdown_on_stop=true添加到worker.toml配置文件中。
启用自动关机
作为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字段中指定的密钥值相匹配。有关说明,请参阅《截止日期云用户指南》中 Deadl AWS ine Cloud 队列中的步骤 7。 -
代理用户必须能够以这些用户的身份登录。
保护您的员工宿主
设置员工主机时,请遵循安全最佳实践以保护敏感信息并保持适当的访问控制。
配置日志文件夹权限
工作器代理写入的日志文件可能包含来自主机配置脚本和作业执行的敏感信息。该install-deadline-worker命令使用安全权限创建日志目录。如果您需要在安装之前手动创建目录,请使用以下步骤来匹配服务管理队列使用的权限: