在预检查模式下运行域重新指向命令时,将导出并检查来自 vCenter Server 的数据,而且会将冲突写入到文件中。

以下数据会导出到 /storage/domain-data/ or ProgramData/VMWare/vCenterServerdata/domain-data 文件夹:

  • All_Privileges.json
  • All_Roles.json
  • All_TagCategories.json
  • All_Tags.json

这些文件包含来自运行该命令的 vCenter Server 的所有数据(授权和标记)。

如果使用 -dvf --dest-vc-fqdn 选项提供辅助 vCenter Server,则任何冲突也会导出到同一个文件夹:

  • Conflicts_Roles.json
  • Conflicts_TagCategories.json
  • Conflicts_Tags.json

以下是示例冲突文件:

<---- Sample Conflict file code block --->
	 {
  "global" : {
    "resolution" : "MERGE|SKIP|COPY",
    "description" : "Default resolution option used to resolve Role Conflicts is COPY. The 
conflicts list describes the differences between Role entities on source and target vCenter Server. If 
the source information represents an empty JSON array, it simply means that all the entity 
attributes from source and target are identical. If the source lists few entries, it means 
that only these entity attributes are missing from the target. If the target lists few entries, 
it means that only these entity attributes are missing from the source. Though a global resolution 
can be set, it can also be overridden at each conflict level by providing individual resolution 
mode."
  },
  "conflicts-count" : 1,
  "conflicts-list" : {
    "NoCryptoAdmin" : {
      "source" : {
        "privileges" : "[]"
      },
      "target" : {
        "privileges" : "[Group-1.SamplePriv-1, Group-1.SamplePriv-4, Group-2.SamplePriv-10, 
Group-2.SamplePriv-3, Group-2.SamplePriv-7, Group-3.SamplePriv-2, Group-3.SamplePriv-9]"
      },
      "resolution" : ""
    }
}
<----- End of code block --->

以下是示例冲突文件的几个部分:

  • description.提供有关如何阅读和理解相应冲突文件的详细信息。
  • sourcetarget。JSON 对象,仅列出源和目标 vCenter Server 对象之间的差异。
  • resolution.用户需提供一个有效的解决方法。有效的解决方法为 MERGECOPYSKIP

要指定用于处理冲突的解决方法,可在 "global": "resolution" = "MERGE|SKIP|COPY" 部分中为所有冲突提供默认解决方法选项。如果没有为 resolution 提供有效的全局解决方法类型或没有对其进行任何编辑,系统将使用 COPY 作为默认解决方法选项。

还可以通过在每个冲突级别编辑 resolution 属性为每个冲突提供有效的解决方法选项,该解决方法选项将替代全局解决方法选项。

冲突类型中列出了冲突类型。

表 1. 冲突类型
冲突 用于比较类别对象的属性 冲突类型 有冲突的属性 冲突解决方法选项
角色冲突
  • name:类别的名称。
  • privilegeId:角色的特权列表。

导入角色时,如果目标 vCenter Server 中存在具有相同名称但具有不同特权的角色时,将发生 RoleName 冲突。

对于 RoleName 冲突类型,有冲突的属性可以是 Privileges
  • COPY.将在目标 vCenter Server 中创建有冲突角色的副本,并将 –-copy 附加到角色名称。将使用新的角色 ID 创建具有相同特权 ID 集的新角色。新的角色 ID 会更新到 VPX_ACCESS 表中。新的角色 ID 同时适用于角色名称冲突和角色 ID 冲突。
    注:
    用于解决角色冲突的默认解决方法选项是 COPY
  • MERGE。将按以下顺序解决 MERGE 选项:
    1. 如果源 vCenter Server 中的角色与目标 vCenter Server 中的角色具有相同的名称和特权列表,但角色 ID 不同,则会使用目标 vCenter Server 中的角色 ID 并将其更新到 VPX_ACCESS 表中。
    2. 如果源 vCenter Server 中的角色与目标 vCenter Server 中的角色具有相同的名称,但特权列表不同,则会合并两个角色的特权列表。
  • SKIP.不执行任何操作。将跳过特定角色。

标记类别冲突:类别名称在 vCenter Server 中必须是唯一的。
  • name:类别的名称。
  • cardinality:类别的基数,可以是 Single 或 Multiple。
  • associableEntityType:可与该类别的标记相关联的 vCenter Server 对象的列表。值 All 表示所有 vCenter Server 对象。
导入标记类别时,只会出现一种冲突类型,即 CategoryName 冲突。此冲突指示目标 vCenter Server 中存在具有相同名称但具有不同属性(cardinalityassociableEntityType)的类别。 对于 CategoryName 冲突类型,有冲突的属性可以是以下一种或两种类型:CardinalityAssociableTypes
  • COPY.将在目标 vCenter Server 中创建有冲突类别的副本,并将 –-copy 附加到类别名称。将创建具有与源 vCenter Server 中相同的属性名称的新类别。该类别下存在的所有标记会导入到新创建的 CategoryCopy 下。
    注:
    用于解决 CategoryName 冲突的默认解决方法选项是 COPY
  • MERGE.有冲突的属性将与 SSO 中已存在的类别合并。将按如下所示合并属性:
    1. Description.将使用已存在的描述。
    2. Cardinality.不能缩小基数。如果存在基数冲突,基数会设置为 multiple。基数不能缩小为 single。
    3. AssociableTypes。如果 associableEntityType 值为 null,则会将其设置为 null。否则会合并 Objects 类型。
  • SKIP.不执行任何操作。所有标记会导入到存在的类别下。

标记冲突:tag 对象始终属于 category 对象。标记名称在类别中必须是唯一的。
  • name
  • description
导入标记时,只会出现一种冲突类型,即 TagName 冲突。此冲突指示目标 vCenter Server 中的相同类别下存在具有相同名称但具有不同属性的标记。 对于 TagName 冲突类型,有冲突的属性可以是 Description
  • COPY.将在目标 vCenter Server 中创建有冲突标记的副本,并将 –-copy 附加到标记名称。采用新创建的标记的 MoRef(内部标记 ID)并根据需要更新标记关联。
    注:
    用于解决 CategoryName 冲突的默认解决方法选项是 COPY
  • MERGE。保留现有描述。采用 MoRef(内部标记 ID)并根据需要更新一个或多个标记关联。

  • SKIP.不执行任何操作。不会创建该标记。清理任何标记关联。