vmware.vmware_rest.content_subscribedlibrary 模块 – 创建新的订阅库
注意
此模块是 vmware.vmware_rest 集合 (版本 4.3.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install vmware.vmware_rest
。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。
要在 playbook 中使用它,请指定:vmware.vmware_rest.content_subscribedlibrary
。
vmware.vmware_rest 2.0.0 中的新增功能
概要
创建一个新的订阅库。
要求
执行此模块的主机需要以下要求。
vSphere 7.0.3 或更高版本
python >= 3.6
aiohttp
参数
参数 |
注释 |
---|---|
为每个创建请求在客户端生成的唯一令牌。令牌应为通用唯一标识符 (UUID),例如:b8a2a2e3-2314-43cd-a871-6ede0f429751。此令牌可用于保证幂等创建。 如果未指定,则创建不具有幂等性。 |
|
创建此库的日期和时间。 此字段不用于创建操作。它始终存在于 get 或 list 操作的结果中。它不用于更新操作。 |
|
此库的人类可读描述。 此字段对于创建操作是可选的。在创建过程中将其留空将导致空字符串值。它始终存在于 get 或 list 操作的结果中。对于更新操作,它是可选的。在更新过程中将其留空表示应保持描述不变。 |
|
唯一标识此 LibraryModel 的标识符。 此字段不用于创建操作。它不会出现在 get 或 list 操作的结果中。它不用于更新操作。 当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.content_library_info 返回的资源的 id。 |
|
上次更新此库的日期和时间。 更改库属性时,此字段会自动更新。添加、删除或修改库项或库中的内容不会影响此字段。标记库或同步订阅库不会更改此字段。 此字段不用于创建操作。它始终存在于 get 或 list 操作的结果中。它不用于更新操作。 |
|
上次同步此库的日期和时间。 此字段仅适用于订阅库。每次触发库上的同步时都会更新它。本地库的值未设置。 此字段不用于创建操作。它是 get 或 list 操作结果中的可选字段。它不用于更新操作。 |
|
应逐出其内容的订阅库的标识符。 该参数必须是 vmware.vmware_rest.content_library_info 返回的资源的 id。state=[‘absent’, ‘evict’, ‘present’, ‘sync’] 时需要。 |
|
库的名称。 库由人类可读的名称标识。库名称不能未定义或为空字符串。名称不必唯一。 此字段必须提供用于创建操作。它始终存在于 get 或 list 操作的结果中。对于更新操作,它是可选的。 |
|
定义应用于此库的各种优化和优化参数。 此字段对于创建操作是可选的。它是 get 或 list 操作结果中的可选字段。对于更新操作,它是可选的。 有效属性为
如果远程发布是此库的主要用例,则将其打开。这里的远程发布是指发布者和订阅者不是同一个 Vcenter SSO 域的一部分。 在库创建过程中打开此优化后,可以进行任何优化。例如,库内容可以以不同的格式存储,但优化不限于存储格式。 注意,此切换开关的值只能在创建库时设置,如果需要更改此值(针对不同的用例优化库),则需要迁移您的库。 此字段对于创建操作是可选的。如果在创建时未指定,则默认情况下库不会针对特定用例进行优化。它不用于更新操作。([‘present’]) |
|
定义此库的发布方式,以便远程订阅库可以订阅它。 PublishInfo 定义此本地库的元数据在何处以及如何访问。只有当 PublishInfo.published 为 true 时,本地库才会公开发布。 此字段对于创建和更新操作是可选的。如果在创建期间未指定,则默认情况下库不会发布。如果在更新期间未指定,则字段保持不变。 有效属性为
此字段对于 LocalLibrary.create 操作是必需的。对于 LocalLibrary.update 操作,它是可选的,如果未设置,则值不会更改。当现有身份验证方法为 BASIC 且本地库已发布时,在关闭发布之前,需要 PublishInfo.current-password 字段。此字段将始终存在于 LocalLibrary.get 操作的结果中。([‘present’])
此值可用于在创建订阅库时设置 SubscriptionInfo.subscription-url 属性。 此字段不用于创建操作。它将始终存在于 get 或 list 操作的结果中。它不用于更新操作。([‘present’])
此字段对于 LocalLibrary.create 和 LocalLibrary.update 操作是可选的。当身份验证方法为 NONE 时,可以不设置用户名。当身份验证方法为 BASIC 时,在当前版本中会忽略用户名。默认为“vcsp”。最好将其留空。如果指定,则必须设置为“vcsp”。([‘present’])
此字段对于 LocalLibrary.create 操作是可选的。当身份验证方法为 NONE 时,可以不设置密码。当身份验证方法为 BASIC 时,密码应为非空字符串。此字段对于 LocalLibrary.update 操作是可选的。在更新期间将其留空表示密码未更改。更改密码时,需要 PublishInfo.current-password 字段。此字段不用于 LocalLibrary.get 操作。([‘present’])
此字段不用于 LocalLibrary.create 操作。此字段对于 LocalLibrary.update 操作是可选的。当现有身份验证方法为 NONE 时,可以不设置当前密码。当现有身份验证方法为 BASIC 时,会在应用新的 PublishInfo.password、关闭身份验证或取消发布库之前验证当前密码。此字段不用于 LocalLibrary.get 操作。([‘present’])
启用 JSON 持久性允许您手动同步订阅库,而不是通过 HTTP 同步。您可以手动将本地库内容和元数据复制到另一个后端存储,然后创建一个订阅库,该库引用 SubscriptionInfo.subscription-url 中库 JSON 文件的位置。当订阅库的后端存储与订阅 URL 匹配时,无需将文件复制到订阅库。 对于由数据存储支持的库,库 JSON 文件将存储在数据存储上的 contentlib-{library_id}/lib.json 路径中。 对于由远程文件系统支持的库,库 JSON 文件将存储在远程文件系统路径中的 {library_id}/lib.json 中。 此字段对于创建操作是可选的。它将始终存在于 get 或 list 操作的结果中。对于更新操作,它是可选的。([‘present’]) |
|
表示应用于此库的安全策略。 设置此字段将使库安全。如果 LibraryModel.unset-security-policy-id 设置为 true,则在更新操作中会忽略此字段。 此字段对于创建和更新操作是可选的。如果在创建操作中未设置,则库将不安全。如果在更新操作中未指定,则字段保持不变。 当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.content_library_info 返回的资源的 id。 |
|
库存在的 vCenter Server 的唯一标识符。 此字段对于创建操作是可选的。它将始终存在于 get 或 list 操作的结果中。它不用于更新操作。 当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.vcenter_cluster_info 返回的资源的 ID。 |
|
客户端会话的超时设置。 整个操作(包括连接建立、请求发送和响应)的最大秒数。 默认值为 300 秒。 |
|
选项
|
|
此库可用的默认存储备份列表。 StorageBacking 定义一个默认存储位置,可用于存储此库中库项的文件。某些库项(例如,虚拟机模板项)支持可能分布在各种存储备份中的文件。一个或多个项目文件可能位于或可能不位于默认存储备份上。 目前不支持多个默认存储位置,但在将来的版本中可能会支持。 创建操作必须提供此字段。它将始终存在于 get 或 list 操作的结果中。它不用于更新操作。 有效属性为
此字段是可选的,只有当 StorageBacking.type 的值为 DATASTORE 时才相关。 当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.vcenter_datastore_info 返回的资源的 ID。([‘present’])
支持以下 URI 格式 vSphere 6.5
vSphere 6.0 更新 1
vSphere 6.0
此字段是可选的,只有当 StorageBacking.type 的值为 OTHER 时才相关。([‘present’]) |
|
定义此库的订阅行为。 SubscriptionInfo 定义此订阅库如何与远程源同步。设置该值将确定库同步到的远程源以及同步方式。更改订阅将导致与新源同步。如果新源与旧源不同,则旧的库项和数据将丢失。将 SubscriptionInfo.automatic-sync-enabled 设置为 false 将停止订阅,但不会删除现有的缓存数据。 此字段对于创建和更新操作是可选的。如果在创建期间未指定,则将创建一个没有活动订阅的默认值。如果在更新期间未指定,则字段保持不变。 有效属性为
创建操作必须提供此字段。它将始终存在于 get 或 list 操作的结果中。对于更新操作,它是可选的。([‘present’, ‘probe’])
如果将其设置为 true,则将同步库项的元数据,但不会同步项的内容(其文件)。内容库服务仅在请求时同步内容。这可能会导致第一次使用内容时出现明显的延迟。 可以使用将 forceSyncContent 设置为 true 的 SubscribedItem.sync 调用提前强制同步没有同步内容的项目。同步内容后,可以使用 SubscribedItem.evict 调用删除内容。 如果将此值设置为 false,则将提前同步所有内容。 创建操作必须提供此字段。它将始终存在于 get 或 list 操作的结果中。对于更新操作,它是可选的。([‘present’, ‘probe’])
使用基于密码的身份验证方法时,必须设置密码;不允许使用空字符串。 此字段对于创建操作是可选的。它不会出现在 get 或 list 操作的结果中。对于更新操作,它是可选的。([‘present’, ‘probe’])
如果定义此值,则将通过将其与 SSL 指纹进行比较来验证 SSL 证书。SSL 证书必须针对指纹进行验证。指定此值时,不使用标准证书链验证行为。如果未设置此值,则会正常验证证书链。如果也设置了 {SubscriptionInfo#sslCertificate},则不会检查指定的 sslThumbprint 以进行 SSL 证书验证。 此字段对于创建操作是可选的。它不会出现在 get 或 list 操作的结果中。对于更新操作,它是可选的。([‘present’, ‘probe’])
此 URL 可以是已发布库的 PublishInfo.publish-url(例如,https://server/path/lib.json)。 如果源内容来自具有 PublishInfo.persist-json-enabled 的已发布库,则订阅 URL 可以是指向数据存储或远程文件系统上的库 JSON 文件的 URL。支持的格式为: vSphere 6.5
vSphere 6.0
指定 DS 订阅 URL 时,数据存储必须与已订阅库位于相同的 vCenter Server 上。指定 NFS 或 SMB 订阅 URL 时,已订阅库的 StorageBacking.storage-uri 必须位于相同的远程文件服务器上,并且应与订阅 URL 共享一个公共父路径。 创建操作必须提供此字段。它将始终存在于 get 或 list 操作的结果中。对于更新操作,它是可选的。([‘present’, ‘probe’])
使用基于密码的身份验证方法时,必须设置用户名。允许用户名为空字符串。 此字段对于创建操作是可选的。它在 get 或 list 操作的结果中是可选的。对于更新操作,它是可选的。([‘present’, ‘probe’])
此字段对于创建操作是可选的。它在 get 或 list 操作的结果中是可选的。对于更新操作,它是可选的。([‘present’, ‘probe’])
此字段必须提供用于创建操作。它始终存在于 get 或 list 操作的结果中。对于更新操作,它是可选的。 当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.content_library_info 返回的资源的 id。
此字段必须提供用于创建操作。它始终存在于 get 或 list 操作的结果中。对于更新操作,它是可选的。 当客户端将此结构的值作为参数传递时,该字段必须是 vmware.vmware_rest.content_library_subscriptions_info 返回的资源的 ID。 |
|
library_type 枚举类型定义了 LibraryModel 的类型。 库的类型可用于确定可以使用库执行哪些附加服务。 选项
|
|
这表示在更新操作中对 LibraryModel.security-policy-id 进行更改的意图。 如果此字段设置为 true,则将删除应用于库的任何安全策略。如果此字段设置为 false,则将任何应用于库的安全策略更改为 LibraryModel.security-policy-id 中指定的值(如果存在)。 此字段对于更新操作是可选的。如果未设置,则任何现有安全策略都将更改为 LibraryModel.security-policy-id 中指定的值(如果存在)。 选项
|
|
vSphere vCenter 的主机名或 IP 地址。 如果任务中未指定此值,则将改为使用环境变量 |
|
vSphere vCenter 密码 如果任务中未指定此值,则将改为使用环境变量 |
|
可以使用此可选参数来设置日志文件的位置。 此文件将用于记录 HTTP REST 交互。 该文件将存储在运行模块的主机上。 如果任务中未指定此值,则将使用 环境变量 |
|
vSphere vCenter 用户名 如果任务中未指定此值,则将改为使用环境变量 |
|
允许在 SSL 证书无效时连接。当证书不受信任时,设置为 如果任务中未指定此值,则将改为使用环境变量 选项
|
|
在元数据更改时更新的版本号。此值允许客户端检测并发更新并防止意外覆盖数据。 此值表示一个数字,每次更改库属性(例如名称或描述)时都会递增。库内库项的更改(包括添加或删除项)不会递增它。它也不会受库标记的影响。 此字段不用于创建操作。它始终出现在 get 或 list 操作的结果中。对于更新操作,它是可选的。在更新期间将其保留为未设置表示您不需要检测并发更新。 |
备注
注意
在 vSphere 7.0.3 上测试。
示例
- name: Create a content library pointing on a NFS share
vmware.vmware_rest.content_locallibrary:
name: my_library_on_nfs
description: automated
publish_info:
published: true
authentication_method: NONE
storage_backings:
- storage_uri: nfs://datastore.test/srv/share/content-library
type: OTHER
state: present
register: nfs_lib
- name: Create subscribed library
vmware.vmware_rest.content_subscribedlibrary:
name: sub_lib
subscription_info:
subscription_url: '{{ nfs_lib.value.publish_info.publish_url }}'
authentication_method: NONE
automatic_sync_enabled: false
on_demand: true
storage_backings:
- datastore_id: "{{ lookup('vmware.vmware_rest.datastore_moid', '/my_dc/datastore/rw_datastore') }}"
type: DATASTORE
register: sub_lib
- name: Create subscribed library (again)
vmware.vmware_rest.content_subscribedlibrary:
name: sub_lib
subscription_info:
subscription_url: '{{ nfs_lib.value.publish_info.publish_url }}'
authentication_method: NONE
automatic_sync_enabled: false
on_demand: true
storage_backings:
- datastore_id: "{{ lookup('vmware.vmware_rest.datastore_moid', '/my_dc/datastore/rw_datastore') }}"
type: DATASTORE
register: result
- name: Clean up the cache
vmware.vmware_rest.content_subscribedlibrary:
name: sub_lib
library_id: '{{ sub_lib.id }}'
state: evict
- name: Trigger a library sync
vmware.vmware_rest.content_subscribedlibrary:
name: sub_lib
library_id: '{{ sub_lib.id }}'
state: sync
返回值
常用返回值已在此处记录 此处,以下是此模块特有的字段:
键 |
描述 |
---|---|
删除所有已订阅的库 返回:成功时 示例: |
|
删除所有已订阅的库 返回:成功时 示例: |