azure.azcollection.azure_rm_batchaccountpool 模块 – 管理 Azure 上的 Batch 帐户池

注意

此模块是 azure.azcollection 集合(版本 3.1.0)的一部分。

如果您正在使用 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install azure.azcollection。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求

要在 playbook 中使用它,请指定:azure.azcollection.azure_rm_batchaccountpool

azure.azcollection 3.0.0 中的新增功能

概要

  • 创建、更新和删除 Azure Batch 帐户池的实例。

要求

执行此模块的主机上需要满足以下要求。

  • python >= 2.7

  • 执行此模块的主机必须通过 galaxy 安装 azure.azcollection 集合

  • 必须通过 pip 在执行来自 azure.azcollection 的模块的主机上安装集合的 requirements.txt 中列出的所有 python 包

  • 完整的安装说明可以在 https://galaxy.ansible.com/azure/azcollection 中找到

参数

参数

注释

ad_user

字符串

Active Directory 用户名。当使用 Active Directory 用户而不是服务主体进行身份验证时使用。

adfs_authority_url

字符串

在 azure.azcollection 0.0.1 中添加

Azure AD 授权 url。当使用用户名/密码进行身份验证,并且拥有自己的 ADFS 授权时使用。

api_profile

字符串

在 azure.azcollection 0.0.1 中添加

选择与 Azure 服务通信时使用的 API 配置文件。默认值 latest 适用于公共云;未来的值将允许与 Azure Stack 一起使用。

默认值: "latest"

application_licenses

列表 / 元素=字符串

应用程序许可证列表必须是可用 Batch 服务应用程序许可证的子集。

如果请求不支持的许可证,则池创建将失败。

application_packages

列表 / 元素=字典

对应用程序包引用的更改会影响加入池的所有新计算节点。

但不会影响池中已有的计算节点,直到它们重新启动或重新映像为止。

任何给定池上最多可以有 10 个应用程序包引用。

id

字符串 / 必需

要安装的应用程序包的 ID。

这必须与池位于同一批处理帐户中。

这可以是特定版本的引用,也可以是默认版本(如果存在)。

version

字符串

如果省略此项,并且未为此应用程序指定默认版本,则请求将失败,并显示错误代码 InvalidApplicationPackageReferences。

如果您直接调用 REST API,则 HTTP 状态代码为 409。

auth_source

字符串

在 azure.azcollection 0.0.1 中添加

控制用于身份验证的凭据的来源。

也可以通过 ANSIBLE_AZURE_AUTH_SOURCE 环境变量设置。

设置为 auto(默认值)时,优先级为模块参数 -> env -> credential_file -> cli

设置为 env 时,将从环境变量中读取凭据

设置为 credential_file 时,它将从 ~/.azure/credentials 中读取配置文件。

设置为 cli 时,凭据将来自 Azure CLI 配置文件。subscription_id 或环境变量 AZURE_SUBSCRIPTION_ID 可用于识别订阅 ID(如果存在多个),否则将使用默认的 az cli 订阅。

设置为 msi 时,主机必须是启用了 MSI 扩展的 azure 资源。subscription_id 或环境变量 AZURE_SUBSCRIPTION_ID 可用于识别订阅 ID(如果资源被授予对多个订阅的访问权限),否则将选择第一个订阅。

msi 在 Ansible 2.6 中添加。

选项

  • "auto" ← (默认)

  • "cli"

  • "credential_file"

  • "env"

  • "msi"

batch_account_name

字符串 / 必需

Batch 帐户的名称。

cert_validation_mode

字符串

在 azure.azcollection 0.0.1 中添加

控制 Azure 端点的证书验证行为。默认情况下,所有模块都会验证服务器证书,但是当使用 HTTPS 代理时,或者针对 Azure Stack 时,可能需要通过传递 ignore 来禁用此行为。也可以通过凭据文件配置文件或 AZURE_CERT_VALIDATION 环境变量设置。

选项

  • "ignore"

  • "validate"

certificates

列表 / 元素=字典

对于 Windows 计算节点,Batch 服务会将证书安装到指定的证书存储区和位置。

对于 Linux 计算节点,证书存储在任务工作目录内的目录中,并且向任务提供环境变量 AZ_BATCH_CERTIFICATES_DIR 以查询此位置。

对于可见性为“remoteUser”的证书,将在用户的主目录中创建一个“certs”目录,并将证书放置在该目录中。

id

字符串 / 必需

要在池上安装的证书的完全限定 ID。

这必须与池位于同一批处理帐户中。

store_location

字符串

默认值为 CurrentUser

此属性仅适用于配置了 Windows 节点的池。

对于 Linux 计算节点,证书存储在任务工作目录内的目录中,并且向任务提供环境变量 AZ_BATCH_CERTIFICATES_DIR 以查询此位置。

对于可见性为“remoteUser”的证书,将在用户的主目录中创建一个“certs”目录,并将证书放置在该目录中。

选项

  • "CurrentUser" ← (默认)

  • "LocalMachine"

store_name

字符串

此属性仅适用于配置了 Windows 节点的池。

这是通过 cloudServiceConfiguration 创建的,或者使用 Windows 映像引用通过 virtualMachineConfiguration 创建的。

选项

  • "My" ← (默认)

  • "Root"

  • "CA"

  • "Trust"

  • "Disallowed"

  • "TrustedPeople"

  • "TrustedPublisher"

  • "AuthRoot"

  • "AddressBook"

visibility

列表 / 元素=字符串

计算节点上的哪些用户帐户应具有对证书的私有数据的访问权限。

选项

  • "StartTask"

  • "Task"

  • "RemoteUser"

client_id

字符串

Azure 客户端 ID。当使用服务主体或托管标识 (msi) 进行身份验证时使用。

也可以通过 AZURE_CLIENT_ID 环境变量设置。

cloud_environment

字符串

在 azure.azcollection 0.0.1 中添加

对于美国公共云以外的云环境,环境名称(由 Azure Python SDK 定义,例如 AzureChinaCloudAzureUSGovernment),或元数据发现终结点 URL(Azure Stack 需要)。也可以通过凭据文件配置文件或 AZURE_CLOUD_ENVIRONMENT 环境变量设置。

默认值: "AzureCloud"

deployment_configuration

字典

使用 CloudServiceConfiguration 指定应使用 Azure 云服务 (PaaS) 创建节点。

使用 VirtualMachineConfiguration 使用 Azure 虚拟机 (IaaS)。

cloud_service_configuration

字典

此属性和 virtualMachineConfiguration 是互斥的,必须指定其中一个属性。

如果 Batch 帐户的 poolAllocationMode 属性设置为“UserSubscription”,则不能指定此属性。

os_family

字符串

os_family=2 相当于 Windows Server 2008 R2 SP1。

os_family=3 相当于 Windows Server 2012。

os_family=4 相当于 Windows Server 2012 R2。

os_family=5 相当于 Windows Server 2016。

os_family=6 相当于 Windows Server 2019。

默认值: "*"

os_version

字符串

默认值为 *,它指定指定操作系统系列的最新操作系统版本。

virtual_machine_configuration

字典

此属性和 cloudServiceConfiguration 是互斥的,必须指定其中一个属性。

container_configuration

字典

如果指定,则会在池中的每个节点上执行设置,以允许任务在容器中运行。

在此池上运行的所有常规任务和作业管理器任务都必须指定 containerSettings 属性。

所有其他任务都可以指定它。

container_image_names

列表 / 元素=字符串

这是完整的映像引用,就像在 “docker pull” 中指定的一样。

除非映像完全限定了备用注册表,否则将从默认 Docker 注册表获取映像。

container_registries

列表 / 元素=字典

如果必须从需要凭据的私有注册表中下载任何映像,则必须在此处提供这些凭据。

identity_reference

字典

引用与计算节点将使用的 Batch 池关联的用户分配标识。

resource_id

字符串

用户分配标识的 ARM 资源 ID。

password

字符串

登录到注册表服务器的密码。

registry_server

字符串

如果省略,则默认值为 docker.io

默认值: "docker.io"

user_name

字符串

登录到注册表服务器的用户名。

type

字符串 / 必需

要使用的容器技术。

选项

  • "DockerCompatible"

  • "CriCompatible"

data_disks

列表 / 元素=字典

如果池中的计算节点需要附加空数据磁盘,则必须指定此属性。

caching

字符串

磁盘的缓存模式

选项

  • "None"

  • "ReadOnly"

  • "ReadWrite"

disk_size_gb

整数 / 必需

创建新数据磁盘时,以 GB 为单位的初始磁盘大小。

lun

整数 / 必需

lun 用于唯一标识每个数据磁盘。

如果附加多个磁盘,则每个磁盘都应具有不同的 lun。

该值必须介于 0 和 63 之间(包括 0 和 63)。

storage_account_type

字符串

数据磁盘类型。

Standard_LRS 用于数据磁盘应使用标准本地冗余存储。

Premium_LRS 用于数据磁盘应使用高级本地冗余存储。

选项

  • "Standard_LRS" ← (默认)

  • "Premium_LRS"

  • "StandardSSD_LRS"

disk_encryption_configuration

字典

如果指定,则在节点预配期间对池中的每个节点执行加密。

targets

列表 / 元素=字符串

在 Linux 池上,仅支持 TemporaryDisk

在 Windows 池上,必须指定 OsDiskTemporaryDisk

选项

  • "TemporaryDisk"

  • "OsDisk"

extensions

列表 / 元素=字典

如果指定,则会在每个节点上安装此配置中提到的扩展。

auto_upgrade_minor_version

布尔值

指示如果部署时有较新的次要版本可用,扩展是否应使用较新的次要版本。

部署后,除非重新部署,否则即使此属性设置为 true,扩展也不会升级次要版本。

选项

  • false

  • true

enable_automatic_upgrade

布尔值

指示如果平台有更新版本的扩展可用,是否应由平台自动升级扩展。

选项

  • false

  • true

name

字符串 / 必需

虚拟机扩展的名称。

protected_settings

json

扩展可以包含 protectedSettings 或 protectedSettingsFromKeyVault,或者根本不包含受保护的设置。

provision_after_extensions

列表 / 元素=字符串

此扩展需要在此之后预配的扩展名称的集合。

publisher

字符串 / 必需

扩展处理程序发布者的名称。

settings

json

扩展的 JSON 格式的公共设置。

type

字符串 / 必需

扩展的类型。

type_handler_version

字符串

脚本处理程序的版本。

image_reference

字典 / 必需

对 Azure 虚拟机市场映像或自定义虚拟机的 Azure 映像资源的引用。

要获取 Azure Batch 验证的所有 imageReference 的列表,请参阅“列出支持的节点代理 SKU”操作。

id

字符串

此属性与其他属性互斥。

Azure 计算库映像必须在与 Azure Batch 帐户相同的区域中具有副本。

示例为 '/subscriptions/{sub_Id}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}

offer

字符串

例如,UbuntuServerWindowsServer

publisher

字符串

例如,CanonicalMicrosoftWindowsServer

sku

字符串

例如,18.04-LTS2022-datacenter

version

字符串

可以指定值“latest”以选择映像的最新版本。

如果省略,则默认值为 latest

license_type

字符串

这仅适用于包含 Windows 操作系统的映像。

仅当您拥有将部署的节点的有效本地许可证时才应使用。

Windows_Server,本地许可证适用于 Windows Server。

Windows_Client,本地许可证适用于 Windows 客户端。

node_agent_sku_id

字符串 / 必需

Batch 节点代理是一个在池中每个节点上运行的程序。

提供节点和 Batch 服务之间的命令和控制接口。

对于不同的操作系统,节点代理有不同的实现,称为 SKU。

您必须指定与所选映像引用匹配的节点代理 SKU。

要获取支持的节点代理 SKU 及其已验证映像引用列表。

node_placement_configuration

字典

此配置将指定节点预配期间池中节点的规则。

policy

字符串

Batch 服务用于预配节点的分配策略。

如果未指定,则 Batch 将使用区域策略。

选项

  • "Regional"

  • "Zonal"

os_disk

字典

包含临时 OSDisk 设置的配置。

caching

字符串

为磁盘启用的缓存类型。

选项

  • "None"

  • "ReadOnly"

  • "ReadWrite"

disk_size_gb

整数

创建新的 OS 磁盘时,以 GB 为单位的初始磁盘大小。

ephemeral_os_disk_settings

字典

指定虚拟机使用的操作系统磁盘的临时磁盘设置。

placement

字符串

用户可以在请求中使用此属性来选择操作系统所在的具体位置。

managed_disk

字典

数据磁盘配置。

storage_account_type

字符串

用于创建数据磁盘或操作系统磁盘的存储帐户类型。

选项

  • "Standard_LRS"

  • "Premium_LRS"

  • "StandardSSD_LRS"

write_accelerator_enabled

布尔值

指定是否在磁盘上启用或禁用 writeAccelerator。

选项

  • false

  • true

security_profile

字典

指定虚拟机或虚拟机规模集的安全配置文件设置。

encryption_at_host

布尔值

用户可以在请求中使用此属性来启用或禁用虚拟机或虚拟机规模集的主机加密。

这将启用主机本身的所有磁盘(包括资源/临时磁盘)的加密。

选项

  • false

  • true

security_type

字符串

指定虚拟机的 SecurityType。

必须将其设置为任何指定值才能启用 UefiSettings。

默认值: "trustedLaunch"

uefi_settings

字典

指定创建虚拟机时使用的安全设置,如安全启动和 vTPM。

secure_boot_enabled

布尔值

指定是否应在虚拟机上启用安全启动。

选项

  • false

  • true

v_tpm_enabled

布尔值

指定是否应在虚拟机上启用 vTPM。

选项

  • false

  • true

service_artifact_reference

字典

服务项目引用 ID。

例如 /subscriptions/{subId}/resourceGroups/{testRG}/providers/Microsoft.Compute/galleries /{gName}/serviceArtifacts/{ArtName}/vmArtifactsProfiles/{ProfilesName}

id

字符串

vmArtifactsProfiles 的服务项目引用 ID。

windows_configuration

字典

如果 imageReference 指定 Linux 操作系统映像,则不得指定此属性。

enable_automatic_updates

布尔值

如果省略,则默认值为 true

选项

  • false

  • true ← (默认值)

disable_instance_discovery

布尔值

在 azure.azcollection 2.3.0 中添加

确定尝试进行身份验证时是否执行实例发现。将其设置为 true 将完全禁用实例发现和授权验证。此功能旨在用于无法访问元数据端点(例如在私有云或 Azure Stack 中)的场景。实例发现的过程包括从 https://login.microsoft.com/ 检索授权元数据以验证授权。通过将此设置为 **True**,将禁用授权的验证。因此,至关重要的是要确保配置的授权主机有效且可信。

通过凭据文件配置文件或 AZURE_DISABLE_INSTANCE_DISCOVERY 环境变量设置。

选项

  • false ← (默认值)

  • true

display_name

字符串

池的显示名称。

identity

字典

用于 Batch 池的标识类型。

如果在更新现有池期间更新了池标识。

只有在池缩减为 0 后创建的新虚拟机才具有更新的标识。

type

字符串 / 必需

用于 Batch 池的标识类型。

选项

  • "None"

  • "UserAssigned"

user_assigned_identities

字典

与 Batch 池关联的用户标识列表。

键是标识的 ID,值包含“principal_id”和“client_id”。

inter_node_communication

字符串

这对可以分配给池的节点施加了限制。

启用此值可能会降低在池中分配请求的节点数的可能性。

如果未指定,则此值默认为 Disabled

选项

  • "Enabled"

  • "Disabled"

is_disable_auto_scale

布尔值

是否禁用池的自动缩放。

选项

  • false ← (默认值)

  • true

is_stop_resize

布尔值

是否停止池上正在进行的调整大小操作。

选项

  • false ← (默认值)

  • true

log_mode

字符串

父参数。

log_path

字符串

父参数。

metadata

列表 / 元素=字典

Batch 服务不为此元数据分配任何含义;它仅供用户代码使用。

name

字符串 / 必需

元数据项的名称。

value

字符串 / 必需

元数据项的值。

mount_configuration

列表 / 元素=字典

这支持 Azure 文件、NFS、CIFS/SMB 和 Blobfuse。

azure_blob_file_system_configuration

字典

Azure Blob 文件系统的配置。

此属性与其他所有属性互斥。

account_key

字符串

此属性与 sasKey 和标识互斥;必须恰好指定一个。

account_name

字符串 / 必需

Azure 存储帐户名称。

blobfuse_options

字符串

这些是 Windows 中的 net use 选项和 Linux 中的 mount 选项。

选项

  • "net use"

  • "mount"

container_name

字符串 / 必需

Azure Blob 存储容器名称。

identity_reference

字典

此属性与 accountKey 和 sasKey 互斥;必须恰好指定一个。

resource_id

字符串

用户分配标识的 ARM 资源 ID。

relative_mount_path

字符串 / 必需

所有文件系统都相对于 Batch 装载目录装载,可通过 AZ_BATCH_NODE_MOUNTS_DIR 环境变量访问。

sas_key

字符串

此属性与 accountKey 和标识互斥;必须恰好指定一个。

azure_file_share_configuration

字典

Azure 文件共享的配置。

此属性与其他所有属性互斥。

account_key

字符串 / 必需

Azure 存储帐户密钥。

account_name

字符串 / 必需

Azure 存储帐户名称。

azure_file_url

字符串 / 必需

此格式为“https://{account}.file.core.windows.net/”。

mount_options

字符串

这些是 Windows 中的 net use 选项和 Linux 中的 mount 选项。

选项

  • "net use"

  • "mount"

relative_mount_path

字符串 / 必需

所有文件系统都相对于 Batch 装载目录装载,可通过 AZ_BATCH_NODE_MOUNTS_DIR 环境变量访问。

cifs_mount_configuration

字典

cifs 装载的配置。

此属性与其他所有属性互斥。

mount_options

字符串

这些是 Windows 中的 net use 选项和 Linux 中的 mount 选项。

选项

  • "net use"

  • "mount"

password

字符串 / 必需

用于对 CIFS 文件系统进行身份验证的密码。

relative_mount_path

字符串 / 必需

所有文件系统都相对于 Batch 装载目录装载,可通过 AZ_BATCH_NODE_MOUNTS_DIR 环境变量访问。

source

字符串 / 必需

要装载的文件系统的 URI。

user_name

字符串 / 必需

用于对 CIFS 文件系统进行身份验证的用户。

nfs_mount_configuration

字典

nfs 装载的配置。

此属性与其他所有属性互斥。

mount_options

字符串

这些是 Windows 中的 net use 选项和 Linux 中的 mount 选项。

选项

  • "net use"

  • "mount"

relative_mount_path

字符串 / 必需

所有文件系统都相对于 Batch 装载目录装载,可通过 AZ_BATCH_NODE_MOUNTS_DIR 环境变量访问。

source

字符串 / 必需

要装载的文件系统的 URI。

name

字符串 / 必需

Batch 帐户池的名称。

network_configuration

字典

池的网络配置。

dynamic_vnet_assignment_scope

字符串

动态 vnet 分配的范围。

选项

  • "none"

  • "job"

enable_accelerated_networking

布尔值

加速网络使虚拟机能够使用单根 I/O 虚拟化 (SR-IOV)。

这可能会提高网络性能。

选项

  • false

  • true

endpoint_configuration

字典

只有具有 virtualMachineConfiguration 属性的池才支持池端点配置。

inbound_nat_pools

列表 / 元素=字典

每个 Batch 池的最大入站 NAT 池数为 5。

如果超过最大入站 NAT 池数,则请求将失败,并显示 HTTP 状态代码 400。

backend_port

整数 / 必需

这在 Batch 池中必须是唯一的。

可接受的值介于 1 和 65535 之间,但不包括 22。

frontend_port_range_end

整数 / 必需

可接受的值范围介于 1 和 65534 之间,但不包括 Batch 服务保留的 50000 到 55000 之间的端口。

池中的所有范围都必须不同,并且不能重叠。

frontend_port_range_start

整数 / 必需

可接受的值范围介于 1 和 65534 之间,但不包括重叠的端口

如果提供任何保留或重叠的值,则请求将失败,并显示 HTTP 状态代码 400。

name

字符串 / 必需

该名称在 Batch 池中必须是唯一的。

该名称包含字母、数字、下划线、句点和连字符。

network_security_group_rules

列表 / 元素=字典

在 Batch 池的所有端点上可以指定的最大规则数为 25。

如果未指定任何网络安全组规则。

将创建默认规则以允许对指定的 backendPort 进行入站访问。

access

字符串 / 必需

应为指定的 IP 地址、子网范围或标记采取的操作。

选项

  • "Allow"

  • "Deny"

priority

整数 / 必需

池中的优先级必须是唯一的,并且按优先级顺序评估

source_address_prefix

字符串

有效值是单个 IP 地址(即 10.10.10.10)。

有效值是单个 IP 地址。

source_port_ranges

列表 / 元素=字符串

有效值是“*”(对于所有端口 0 - 65535)或端口或端口范围的数组(即 100-200)。

protocol

字符串 / 必需

端点的协议。

选项

  • "UDP"

  • "TCP"

public_ip_address_configuration

字典

仅具有 virtualMachineConfiguration 属性的池才支持此属性。

ip_address_ids

列表 / 元素=字符串

此处指定的 IP 数限制了池的最大大小,每个公共 IP 可以分配 100 个专用节点或 100 个 Spot/低优先级节点。

provision

字符串

公共 IP 地址配置的预配。

选项

  • "BatchManaged" ← (默认值)

  • "UserManaged"

  • "NoPublicIPAddresses"

subnet_id

字符串

虚拟网络必须与 Azure Batch 帐户位于同一区域和订阅中。

指定的子网应有足够的空闲 IP 地址来容纳池中的节点数。

如果子网没有足够的空闲 IP 地址,则池将部分分配计算节点,并且会出现调整大小错误。

password

字符串

Active Directory 用户密码。当使用 Active Directory 用户而不是服务主体进行身份验证时使用。

profile

字符串

在 ~/.azure/credentials 文件中找到的安全配置文件。

resource_group

字符串 / 必需

要在其中创建 Batch 帐户池的资源组的名称。

resource_tags

字典

要与 Azure Batch 池关联的用户定义标记。

指定后,这些标记将传播到与池关联的支持 Azure 资源。

仅当使用设置为“UserSubscription”的 poolAllocationMode 属性创建 Batch 帐户时,才能指定此属性。

scale_settings

字典

定义池的所需大小。

这可以是指定了请求的 targetDedicatedNodes 的“fixedScale”,也可以是定义了定期重新评估的公式的“autoScale”。

如果未指定此属性,则池将具有固定比例,targetDedicatedNodes 为 0。

auto_scale

字典

此属性和 fixedScale 互斥,必须指定其中一个属性。必须指定。

evaluation_interval

字符串

如果省略,则默认值为 15 分钟 (PT15M)。

默认值: "P15M"

formula

字符串 / 必需

池中所需计算节点数的公式。

fixed_scale

字典

此属性和 autoScale 互斥,必须指定其中一个属性。

node_deallocation_option

字符串

如果省略,则默认值为 Requeue

选项

  • "Requeue"

  • "Terminate"

  • "TaskCompletion"

  • "RetainedData"

resize_timeout

字符串

默认值为 15 分钟 P15M

超时值使用 ISO 8601 格式。例如,对于 10 分钟,请使用 PT10M。

最小值是 5 分钟。

如果指定的值小于 5 分钟,则 Batch 服务将拒绝该请求,并显示错误。

默认值: "P15M"

target_dedicated_nodes

整数

必须设置 targetDedicatedNodes 和 targetLowPriorityNodes 中的至少一个。

target_low_priority_nodes

整数

必须设置 targetDedicatedNodes 和 targetLowPriorityNodes 中的至少一个。

secret

字符串

Azure 客户端密钥。当使用服务主体进行身份验证时使用。

start_task

字典

在 PATCH(更新)操作中,可以将此属性设置为空对象,以从池中删除启动任务。

command_line

字符串

命令行不在 shell 下运行,因此无法利用 shell 功能(如环境变量扩展)。

如果要利用此类功能,则应在命令行中调用 shell。

如果指定了 startTask 的任何其他属性,则为必需项。

container_settings

字典

指定此项后,会将 AZ_BATCH_NODE_ROOT_DIR 下的所有目录递归映射到容器中,所有任务环境变量映射到容器中,并且任务命令行在容器中执行。

container_run_options

字符串

除了由 Batch 服务控制的选项外,这些附加选项会作为参数提供给“docker create”命令。

image_name

字符串

这是完整的映像引用,就像在 “docker pull” 中指定的一样。

如果镜像名称中未提供标签,则默认使用标签“:latest”。

registry

字典

如果在池创建时已提供此设置,则可以省略此设置。

identity_reference

字典

引用与计算节点将使用的 Batch 池关联的用户分配标识。

resource_id

字符串

用户分配标识的 ARM 资源 ID。

password

字符串

登录到注册表服务器的密码。

registry_server

字符串

如果省略,则默认为“docker.io”。

默认值: "docker.io"

user_name

字符串

用于登录注册服务器的用户名。

working_directory

字符串

一个标志,指示容器任务的工作目录在哪里。

选项

  • "TaskWorkingDirectory"

  • "ContainerImageDefault"

environment_settings

列表 / 元素=字典

启动任务的环境变量设置列表。

name

字符串 / 必需

环境变量的名称。

value

字符串

环境变量的值。

max_task_retry_count

整数

如果任务的退出代码非零,则 Batch 服务会重试该任务。

请注意,此值专门控制重试次数。

Batch 服务将尝试执行一次任务,然后可能会重试到此限制。

默认值: 0

resource_files

列表 / 元素=字典

Batch 服务在运行命令行之前将下载到计算节点的文件列表。

要下载到计算节点的单个文件或多个文件。

auto_storage_container_name

字符串

autoStorageContainerName、storageContainerUrl 和 httpUrl 属性是互斥的,必须指定其中一个。

blob_prefix

字符串

仅当使用 autoStorageContainerName 或 storageContainerUrl 时,此属性才有效。

此前缀可以是部分文件名或子目录。

如果未指定前缀,将下载容器中的所有文件。

file_mode

字符串

此属性仅适用于下载到 Linux 计算节点的文件。

如果为下载到 Windows 节点的 resourceFile 指定了此属性,则会忽略它。

如果未为 Linux 节点指定此属性,则文件的默认值为 0770。

file_path

字符串

如果指定了 httpUrl 属性,则 filePath 是必需的,并且描述文件将下载到的路径,包括文件名。

如果指定了 autoStorageContainerName 或 storageContainerUrl 属性,则 filePath 是可选的,并且是文件下载到的目录。

如果 filePath 用作目录,则与输入数据关联的任何目录结构将完整保留,并附加到指定的 filePath 目录。

指定的相对路径不能超出任务的工作目录。

http_url

字符串

autoStorageContainerName、storageContainerUrl 和 httpUrl 属性是互斥的,必须指定其中一个。

如果 URL 指向 Azure Blob 存储,则必须可以从计算节点读取。

有三种方法可以获取 Azure 存储中 blob 的此类 URL。

包括一个共享访问签名 (SAS),该签名授予对 blob 的读取权限,使用具有读取权限的托管标识,或者设置 blob 或其容器的 ACL 以允许公共访问。

identity_reference

字典

引用与计算节点将使用的 Batch 池关联的用户分配标识。

resource_id

字符串

用户分配标识的 ARM 资源 ID。

storage_container_url

字符串

autoStorageContainerName、storageContainerUrl 和 httpUrl 属性是互斥的,必须指定其中一个。

此 URL 必须可从计算节点读取和列出。

有三种方法可以获取 Azure 存储中容器的此类 URL。

包括一个共享访问签名 (SAS),该签名授予对容器的读取和列出权限,使用具有读取和列出权限的托管标识,或者设置容器的 ACL 以允许公共访问。

user_identity

字典

如果省略,则任务将以任务独有的非管理用户身份运行。

auto_user

字典

任务用户身份的自动用户配置。

userName 和 autoUser 属性是互斥的;您必须指定一个,但不能同时指定两者。

elevation_level

字符串

自动用户提升级别。

选项

  • "NonAdmin" ← (默认)

  • "Admin"

scope

字符串

自动用户范围的范围。

默认值为“Pool”。

如果池正在运行 Windows,如果需要任务之间更严格的隔离,则应指定值“Task”。

选项

  • "Task"

  • "Pool" ← (默认)

user_name

字符串

任务用户身份的用户名。

userName 和 autoUser 属性是互斥的;您必须指定一个,但不能同时指定两者。

wait_for_success

布尔值

如果为 true 并且启动任务在计算节点上失败。

Batch 服务会重试启动任务,直到达到其最大重试次数 (maxTaskRetryCount)。

如果任务在所有重试后仍然没有成功完成,则 Batch 服务会将计算节点标记为不可用,并且不会将任务调度到该节点。

可以通过节点状态和调度错误详细信息检测到此情况。

如果为 false,则 Batch 服务不会等待启动任务完成。

选项

  • false

  • true

state

字符串

断言 Batch 帐户池的状态。

使用 present 创建或更新 Batch 帐户池,使用 absent 删除它。

选项

  • "present" ← (默认)

  • "absent"

subscription_id

字符串

您的 Azure 订阅 ID。

target_node_communication_mode

字符串

如果省略,则默认值为 Default

选项

  • "Default" ← (默认)

  • "Classic"

  • "Simplified"

task_scheduling_policy

字典

指定应如何在计算节点之间分配任务。

node_fill_type

字符串

应如何在计算节点之间分配任务。

选项

  • "Spread"

  • "Pack"

task_slots_per_node

整数

默认值为 1

最大值是池的 vmSize 的内核数的 4 倍或 256 中的较小值。

默认值: 1

tenant

字符串

Azure 租户 ID。在使用服务主体进行身份验证时使用。

thumbprint

字符串

在 azure.azcollection 1.14.0 中添加

x509_certificate_path 中指定的私钥的指纹。

在使用服务主体进行身份验证时使用。

如果定义了 x509_certificate_path,则为必需。

upgrade_policy

字典

描述升级策略。

automatic_os_upgrade_policy

字典

用于执行自动 OS 升级的配置参数。

disable_automatic_rollback

布尔值

是否应禁用 OS 镜像回滚功能。

选项

  • false

  • true

enable_automatic_os_upgrade

布尔值

指示当较新版本的 OS 镜像可用时,是否应以滚动方式自动将 OS 升级应用于规模集实例。

选项

  • false

  • true

os_rolling_upgrade_deferral

布尔值

如果 TVM 正在运行任务,则推迟 TVM 上的 OS 升级。

选项

  • false

  • true

use_rolling_upgrade_policy

布尔值

指示在自动 OS 升级期间是否应使用滚动升级策略。

如果 VMSS 上没有定义策略,则自动 OS 升级将回退到默认策略。

选项

  • false

  • true

mode

字符串 / 必需

指定规模集中虚拟机升级的模式。

选项

  • "automatic"

  • "manual"

  • "rolling"

rolling_upgrade_policy

字典

仅具有 virtualMachineConfiguration 属性的池才支持此属性。

enable_cross_zone_upgrade

布尔值

允许 VMSS 在构建升级批处理时忽略 AZ 边界。

考虑更新域和 maxBatchInstancePercent 来确定批处理大小。

如果未设置此字段,Azure Azure Batch 将不会设置其默认值。

创建的 VirtualMachineScaleSet 上 enableCrossZoneUpgrade 的值将由 VirtualMachineScaleSet 上的默认配置决定。

只有当使用 NodePlacementConfiguration 作为 Zonal 时,此字段才能设置为 true 或 false。

选项

  • false

  • true

max_batch_instance_percent

整数

通过一个批处理中的滚动升级同时升级的最大虚拟机实例总数的百分比。

由于这是一个最大值,因此先前或将来批处理中的不正常实例可能会导致批处理中的实例百分比减少,以确保更高的可靠性。

此字段的值应介于 5 和 100 之间(包括 5 和 100)。

如果 maxBatchInstancePercent 和 maxUnhealthyInstancePercent 都分配了值,则 maxBatchInstancePercent 的值不应大于 maxUnhealthyInstancePercent。

max_unhealthy_instance_percent

整数

规模集中虚拟机实例总数的最大百分比,在滚动升级中止之前,可以同时处于不正常状态,或者由于正在升级而导致,或者通过虚拟机运行状况检查发现处于不正常状态。

此约束将在启动任何批处理之前进行检查。

如果 maxBatchInstancePercent 和 maxUnhealthyInstancePercent 都分配了值,则 maxBatchInstancePercent 的值不应大于 maxUnhealthyInstancePercent。

max_unhealthy_upgraded_instance_percent

整数

可以发现处于不正常状态的升级后的虚拟机实例的最大百分比。

每次批处理升级后都会进行此检查。

如果此百分比超出,则滚动更新中止。

此字段的值应介于 0 和 100 之间(包括 0 和 100)。

pause_time_between_batches

字符串

完成一个批处理中所有虚拟机的更新与启动下一个批处理之间的等待时间。

时间长度应以 ISO 8601 格式指定。

prioritize_unhealthy_instances

布尔值

在任何正常实例之前升级规模集中的所有不正常实例。

选项

  • false

  • true

rollback_failed_instances_on_policy_breach

布尔值

如果违反滚动升级策略,则将失败的实例回滚到之前的模型。

选项

  • false

  • true

user_accounts

列表 / 元素=字典

要在池中每个节点上创建的用户帐户列表。

elevation_level

字符串

NonAdmin - 自动用户是无提升访问权限的标准用户。

Admin - 自动用户是具有提升访问权限的用户,并以完全管理员权限运行。

选项

  • "NonAdmin" ← (默认)

  • "Admin"

linux_user_configuration

字典

用于在 Linux 节点上创建用户帐户的属性。

gid

整数

必须一起指定 uid 和 gid 属性,或者都不指定。

如果未指定,则底层操作系统会选择 gid。

ssh_private_key

字符串

私钥不能受密码保护。

当池的 enableInterNodeCommunication 属性为 true 时,私钥用于自动配置 Linux 池中节点之间 SSH 的基于非对称密钥的身份验证。

它通过将密钥对放置到用户的 .ssh 目录中来实现此目的。

如果未指定,则不会在节点之间配置无密码 SSH(不会修改用户的 .ssh 目录)。

uid

整数

必须一起指定 uid 和 gid 属性,或者都不指定。

如果未指定,则底层操作系统会选择 uid。

name

字符串 / 必需

用户帐户的名称。名称可以包含任何 Unicode 字符,最大长度为 20。

password

字符串 / 必需

用户帐户的密码。

windows_user_configuration

字典

用于在 Windows 节点上创建用户帐户的属性。

login_mode

字符串

指定用户的登录模式。

VirtualMachineConfiguration 池的默认值为交互模式,CloudServiceConfiguration 池的默认值为批处理模式。

选项

  • "Batch"(批处理)

  • "Interactive"(交互式)

vm_size

字符串

有关云服务池可用虚拟机大小的信息。

批处理支持除 ExtraSmall、A1V2 和 A2V2 之外的所有云服务 VM 大小。

批处理支持除 STANDARD_A0 和具有高级存储的虚拟机(STANDARD_GS、STANDARD_DS 和 STANDARD_DSV2 系列)之外的所有 Azure VM 大小。

x509_certificate_path

path(路径)

在 azure.azcollection 1.14.0 中添加

用于创建 PEM 格式服务主体的 X509 证书的路径。

证书必须附加到私钥。

在使用服务主体进行身份验证时使用。

注释

注意

  • 对于 Azure 身份验证,您可以传递参数、设置环境变量、使用存储在 ~/.azure/credentials 中的配置文件,或者在使用 az login 命令运行任务或 playbook 之前登录。

  • 也可以使用服务主体或 Active Directory 用户进行身份验证。

  • 要通过服务主体进行身份验证,请传递 subscription_id、client_id、secret 和 tenant,或设置环境变量 AZURE_SUBSCRIPTION_ID、AZURE_CLIENT_ID、AZURE_SECRET 和 AZURE_TENANT。

  • 要通过 Active Directory 用户进行身份验证,请传递 ad_user 和 password,或在环境中设置 AZURE_AD_USER 和 AZURE_PASSWORD。

  • 或者,凭据可以存储在 ~/.azure/credentials 中。这是一个包含 [default] 部分和以下键的 ini 文件:subscription_id、client_id、secret 和 tenant,或者 subscription_id、ad_user 和 password。也可以添加其他配置文件。通过传递 profile 或在环境中设置 AZURE_PROFILE 来指定配置文件。

另请参阅

另请参阅

使用 Azure CLI 登录

如何使用 az login 命令进行身份验证。

示例

- name: Create a new batch account pool
  azure_rm_batchaccountpool:
    resource_group: "{{ resource_group }}"
    batch_account_name: "{{ batch_account_name }}"
    name: "pool{{ batch_account_name }}--004"
    deployment_configuration:
      virtual_machine_configuration:
        image_reference:
          offer: ubuntu-hpc
          publisher: microsoft-dsvm
          sku: 2204
          version: latest
        node_agent_sku_id: batch.node.ubuntu 22.04
        node_placement_configuration:
          policy: Regional
        os_disk:
          caching: None
          managed_disk:
            storage_account_type: Premium_LRS
    display_name: "fredtest01"
    identity:
      type: UserAssigned
      user_assigned_identities:
        '/subscriptions/xxx-xxx/resourceGroups/testRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/AzSecPackAutoConfigUA-westus':
          client_id: xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
          principal_id: yyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
        '/subscriptions/xxx-xxx/resourceGroups/yishitest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ystestidentity':
          client_id: yyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
          principal_id: xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    inter_node_communication: Disabled
    network_configuration:
      dynamic_vnet_assignment_scope: none
      subnet_id: "/subscriptions/xxx-xxx/resourceGroups/testRG/providers/Microsoft.Network/virtualNetworks/vnet02/subnets/default"
      endpoint_configuration:
        inbound_nat_pools:
          - backend_port: 33
            frontend_port_range_end: 49999
            frontend_port_range_start: 1
            name: nat02
            protocol: UDP
      public_ip_address_configuration:
        provision: BatchManaged
    scale_settings:
      fixed_scale:
        resize_timeout: PT15M
        target_dedicated_nodes: 0
        target_low_priority_nodes: 0
    target_node_communication_mode: Default
    task_scheduling_policy:
      node_fill_type: Pack
    task_slots_per_node: 1
    vm_size: STANDARD_D2S_V3
    upgrade_policy:
      mode: manual
      rolling_upgrade_policy:
        max_batch_instance_percent: 20
        max_unhealthy_instance_percent: 20
        max_unhealthy_upgraded_instance_percent: 20
        pause_time_between_batches: P0D
        rollback_failed_instances_on_policy_breach: false
      automatic_os_upgrade_policy:
        disable_automatic_rollback: false
        enable_automatic_os_upgrade: false
        os_rolling_upgrade_deferral: false
        use_rolling_upgrade_policy: false

- name: Delete the Batch Account Pool
  azure_rm_batchaccountpool:
    resource_group: MyResGroup
    name: pool01
    batch_account_name: mybatchaccount
    state: absent

返回值

常见返回值记录在此处:此处,以下是此模块独有的字段

描述

state

字典

包含有关 Batch 帐户中池的信息。

返回:始终

示例: {"allocation_state": "Steady", "allocation_state_transition_time": "2024-11-05T08:58:16.803138Z", "batch_account_name": "fredbatch02", "creation_time": "2024-11-05T08:58:15.399345Z", "current_dedicated_nodes": 0, "current_low_priority_nodes": 0, "deployment_configuration": {"virtual_machine_configuration": {"image_reference": {"offer": "ubuntu-hpc", "publisher": "microsoft-dsvm", "sku": "2204", "version": "latest"}, "node_agent_sku_id": "batch.node.ubuntu 22.04", "node_placement_configuration": {"policy": "Regional"}, "os_disk": {"caching": "None", "managed_disk": {"storage_account_type": "Premium_LRS"}}}}, "etag": "0x8DCFD77FC345CFE", "id": "/subscriptions/xxx-xxx/resourceGroups/testRG/providers/Microsoft.Batch/batchAccounts/batch01/pools/pool01", "inter_node_communication": "Disabled", "last_modified": "2024-11-05T08:58:15.399347Z", "name": "poolfredbatch02--002", "network_configuration": {"dynamic_vnet_assignment_scope": "None", "enable_accelerated_networking": false, "endpoint_configuration": {"inbound_nat_pools": [{"backend_port": 33, "frontend_port_range_end": 49999, "frontend_port_range_start": 1, "name": "nat02", "protocol": "UDP"}]}, "public_ip_address_configuration": {"provision": "BatchManaged"}, "subnet_id": "/subscriptions/xxx-xxx/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/vnet01/subnets/default"}, "provisioning_state": "Succeeded", "provisioning_state_transition_time": "2024-11-05T08:58:15.399345Z", "resize_operation_status": {"node_deallocation_option": "Requeue", "resize_timeout": "PT15M", "start_time": "2024-11-05T08:58:15.399317Z", "target_dedicated_nodes": 0}, "resource_group": "v-xisuRG06", "scale_settings": {"fixed_scale": {"resize_timeout": "PT15M", "target_dedicated_nodes": 0, "target_low_priority_nodes": 0}}, "target_node_communication_mode": "Default", "task_scheduling_policy": {"node_fill_type": "Pack"}, "task_slots_per_node": 1, "type": "Microsoft.Batch/batchAccounts/pools", "upgrade_policy": {"automatic_os_upgrade_policy": {"disable_automatic_rollback": false, "enable_automatic_os_upgrade": false, "os_rolling_upgrade_deferral": false, "use_rolling_upgrade_policy": false}, "mode": "Manual", "rolling_upgrade_policy": {"max_batch_instance_percent": 20, "max_unhealthy_instance_percent": 20, "max_unhealthy_upgraded_instance_percent": 20, "pause_time_between_batches": "P0D", "rollback_failed_instances_on_policy_breach": false}}, "vm_size": "STANDARD_D2S_V3"}

作者

  • xuzhang3 (@xuzhang3)

  • Fred Sun (@Fred-sun)