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,如果存在多个订阅 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

dictionary

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

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

cloud_service_configuration

dictionary

此属性和 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

dictionary

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

container_configuration

dictionary

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

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

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

container_image_names

列表 / 元素=字符串

这是完整的镜像引用,如“docker pull”指定的那样。

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

container_registries

列表 / 元素=字典

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

identity_reference

dictionary

对与计算节点将使用的 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

integer / required

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

lun

integer / required

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

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

该值必须介于 0 到 63 之间(含 0 和 63)。

storage_account_type

字符串

数据磁盘类型。

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

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

选择

  • "Standard_LRS" ← (默认)

  • "Premium_LRS"

  • "StandardSSD_LRS"

disk_encryption_configuration

dictionary

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

targets

列表 / 元素=字符串

在 Linux 池上,仅支持 TemporaryDisk

在 Windows 池上,必须指定 OsDiskTemporaryDisk

选择

  • "TemporaryDisk"

  • "OsDisk"

extensions

列表 / 元素=字典

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

auto_upgrade_minor_version

boolean

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

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

选择

  • false

  • true

enable_automatic_upgrade

boolean

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

选择

  • false

  • true

name

字符串 / 必需

虚拟机扩展的名称。

protected_settings

json

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

provision_after_extensions

列表 / 元素=字符串

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

publisher

字符串 / 必需

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

settings

json

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

type

字符串 / 必需

扩展的类型。

type_handler_version

字符串

脚本处理程序的版本。

image_reference

dictionary / required

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

要获取 Azure Batch 验证的所有 imageReferences 的列表,请参阅“列出支持的节点代理 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

dictionary

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

policy

字符串

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

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

选择

  • "Regional"

  • "Zonal"

os_disk

dictionary

包含临时 OSDisk 设置的配置。

caching

字符串

为磁盘启用的缓存类型。

选择

  • "None"

  • "ReadOnly"

  • "ReadWrite"

disk_size_gb

integer

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

ephemeral_os_disk_settings

dictionary

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

placement

字符串

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

managed_disk

dictionary

数据磁盘配置。

storage_account_type

字符串

用于创建数据磁盘或 OSdisk 的存储帐户类型。

选择

  • "Standard_LRS"

  • "Premium_LRS"

  • "StandardSSD_LRS"

write_accelerator_enabled

boolean

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

选择

  • false

  • true

security_profile

dictionary

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

encryption_at_host

boolean

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

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

选择

  • false

  • true

security_type

字符串

指定虚拟机的 SecurityType。

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

默认值: "trustedLaunch"

uefi_settings

dictionary

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

secure_boot_enabled

boolean

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

选择

  • false

  • true

v_tpm_enabled

boolean

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

选择

  • false

  • true

service_artifact_reference

dictionary

服务项目引用 ID。

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

id

字符串

vmArtifactsProfiles 的服务项目引用 ID。

windows_configuration

dictionary

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

enable_automatic_updates

boolean

如果省略,则默认值为 true

选择

  • false

  • true ← (默认)

disable_instance_discovery

boolean

在 azure.azcollection 2.3.0 中添加

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

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

选择

  • false ← (默认)

  • true

display_name

字符串

池的显示名称。

identity

dictionary

用于 Batch 池的标识类型。

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

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

type

字符串 / 必需

用于 Batch 池的标识类型。

选择

  • "None"

  • "UserAssigned"

user_assigned_identities

dictionary

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

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

inter_node_communication

字符串

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

启用此值可以减少在池中分配请求的节点数的可能性。

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

选择

  • "Enabled"

  • "Disabled"

is_disable_auto_scale

boolean

是否禁用池的自动缩放。

选择

  • false ← (默认)

  • true

is_stop_resize

boolean

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

选择

  • false ← (默认)

  • true

log_mode

字符串

父参数。

log_path

字符串

父参数。

metadata

列表 / 元素=字典

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

name

字符串 / 必需

元数据项的名称。

value

字符串 / 必需

元数据项的值。

mount_configuration

列表 / 元素=字典

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

azure_blob_file_system_configuration

dictionary

Azure Blob 文件系统的配置。

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

account_key

字符串

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

account_name

字符串 / 必需

Azure 存储帐户名称。

blobfuse_options

字符串

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

选择

  • "net use"

  • "mount"

container_name

字符串 / 必需

Azure Blob 存储容器名称。

identity_reference

dictionary

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

resource_id

字符串

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

relative_mount_path

字符串 / 必需

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

sas_key

字符串

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

azure_file_share_configuration

dictionary

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

dictionary

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

dictionary

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

dictionary

池的网络配置。

dynamic_vnet_assignment_scope

字符串

动态 vnet 分配的范围。

选择

  • "none"

  • "job"

enable_accelerated_networking

boolean

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

这可能会提高网络性能。

选择

  • false

  • true

endpoint_configuration

dictionary

仅当池具有 virtualMachineConfiguration 属性时,才支持池终结点配置。

inbound_nat_pools

列表 / 元素=字典

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

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

backend_port

integer / required

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

可接受的值在 1 到 65535 之间,但 22 除外。

frontend_port_range_end

integer / required

可接受的值在 1 到 65534 之间,但 Batch 服务保留的 50000 到 55000 端口除外。

池内的所有范围必须不同且不能重叠。

frontend_port_range_start

integer / required

可接受的值在 1 到 65534 之间,但端口重叠除外

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

name

字符串 / 必需

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

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

network_security_group_rules

列表 / 元素=字典

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

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

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

access

字符串 / 必需

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

选择

  • "Allow"

  • "Deny"

priority

integer / required

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

source_address_prefix

字符串

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

有效值是单个 IP 地址。

source_port_ranges

列表 / 元素=字符串

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

protocol

字符串 / 必需

终结点的协议。

选择

  • "UDP"

  • "TCP"

public_ip_address_configuration

dictionary

仅当池具有 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

dictionary

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

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

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

scale_settings

dictionary

定义池的所需大小。

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

如果未指定此属性,则池将具有固定的规模,且 targetDedicatedNodes 为 0。

auto_scale

dictionary

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

evaluation_interval

字符串

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

默认值: "P15M"

formula

字符串 / 必需

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

fixed_scale

dictionary

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

node_deallocation_option

字符串

如果省略,则默认值为 Requeue

选择

  • "Requeue"

  • "Terminate"

  • "TaskCompletion"

  • "RetainedData"

resize_timeout

字符串

默认值为 15 分钟 P15M

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

最小值是 5 分钟。

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

默认值: "P15M"

target_dedicated_nodes

integer

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

target_low_priority_nodes

integer

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

secret

字符串

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

start_task

dictionary

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

command_line

字符串

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

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

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

container_settings

dictionary

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

container_run_options

字符串

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

image_name

字符串

这是完整的镜像引用,如“docker pull”指定的那样。

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

registry

dictionary

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

identity_reference

dictionary

对与计算节点将使用的 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

integer

如果任务的退出代码非零,则 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 属性,则 file_path 是必需的,并描述文件将下载到的路径,包括文件名。

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

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

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

http_url

字符串

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

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

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

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

identity_reference

dictionary

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

resource_id

字符串

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

storage_container_url

字符串

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

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

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

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

user_identity

dictionary

如果省略,则任务以该任务唯一的非管理用户身份运行。

auto_user

dictionary

任务用户标识的 autouser 配置。

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

elevation_level

字符串

自动用户提升级别。

选择

  • "NonAdmin" ← (默认值)

  • "Admin"

scope

字符串

自动用户范围的范围。

默认值为 Pool。

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

选择

  • "Task"

  • "Pool" ← (默认值)

user_name

字符串

任务用户标识的用户名。

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

wait_for_success

boolean

如果为 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

dictionary

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

node_fill_type

字符串

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

选择

  • "Spread"

  • "Pack"

task_slots_per_node

integer

默认值为 1

最大值为池的 vmSize 的核心数的 4 倍或 256 中的较小者。

默认值: 1

tenant

字符串

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

thumbprint

字符串

在 azure.azcollection 1.14.0 中添加

x509_certificate_path 中指定的私钥的指纹。

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

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

upgrade_policy

dictionary

描述升级策略。

automatic_os_upgrade_policy

dictionary

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

disable_automatic_rollback

boolean

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

选择

  • false

  • true

enable_automatic_os_upgrade

boolean

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

选择

  • false

  • true

os_rolling_upgrade_deferral

boolean

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

选择

  • false

  • true

use_rolling_upgrade_policy

boolean

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

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

选择

  • false

  • true

mode

字符串 / 必需

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

选择

  • "automatic"

  • "manual"

  • "rolling"

rolling_upgrade_policy

dictionary

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

enable_cross_zone_upgrade

boolean

允许 VMSS 在构造升级批次时忽略 AZ 边界。

请考虑更新域和 maxBatchInstancePercent 以确定批次大小。

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

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

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

选择

  • false

  • true

max_batch_instance_percent

integer

在滚动升级中,一次在一个批次中同时升级的最大虚拟机实例总数的百分比。

由于这是一个最大值,因此之前或未来批次中的不正常实例可能会导致批次中实例的百分比降低,以确保更高的可靠性。

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

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

max_unhealthy_instance_percent

integer

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

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

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

max_unhealthy_upgraded_instance_percent

integer

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

此检查将在每个批次升级后进行。

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

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

pause_time_between_batches

字符串

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

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

prioritize_unhealthy_instances

boolean

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

选择

  • false

  • true

rollback_failed_instances_on_policy_breach

boolean

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

选择

  • false

  • true

user_accounts

列表 / 元素=字典

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

elevation_level

字符串

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

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

选择

  • "NonAdmin" ← (默认值)

  • "Admin"

linux_user_configuration

dictionary

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

gid

integer

必须同时指定或完全不指定 uid 和 gid 属性。

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

ssh_private_key

字符串

私钥不能受密码保护。

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

它通过将密钥对放入用户的 .ssh 目录来实现这一点。

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

uid

integer

必须同时指定或完全不指定 uid 和 gid 属性。

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

name

字符串 / 必需

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

password

字符串 / 必需

用户帐户的密码。

windows_user_configuration

dictionary

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

login_mode

字符串

指定用户的登录模式。

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

选择

  • “批处理”

  • “交互式”

vm_size

字符串

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

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

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

x509_certificate_path

路径

在 azure.azcollection 1.14.0 中添加

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

证书必须附加到私钥。

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

备注

注意

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

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

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

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

  • 或者,凭据可以存储在 ~/.azure/credentials 中。这是一个 ini 文件,包含一个 [default] 部分和以下键: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

dictionary

包含有关 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)