0

我希望在部署 ova 以创建 vm 时强制设置 root 密码。我在 ovf 中设置了该属性,但似乎无法强制执行。VSphere 客户端在部署时显示属性,但用户可以跳过设置值并转到下一步。

<ProductSection ovf:class="hx" ovf:instance="Some_Appliance" ovf:required="false">
  <Info>Application Properties</Info>
  <Category>Networking Properties</Category>
  <Property ovf:key="DNS" ovf:type="string" ovf:userConfigurable="true">
    <Label>DNS</Label>
  </Property>
  <Property ovf:key="domain" ovf:type="string" ovf:userConfigurable="true">
    <Label>Search domains</Label>
  </Property>
  <Property ovf:key="NTP" ovf:type="string" ovf:userConfigurable="true">
    <Label>NTP</Label>
  </Property>
  <Property ovf:key="root_password" ovf:password="true" ovf:required="true" ovf:qualifiers="MinLen(0),MaxLen(65535)" ovf:type="string" ovf:userConfigurable="true">
     <Label>Root Password</Label>
     <Description>To set the root password</Description>
  </Property>

我已经尝试在产品部分设置 ovf:required="true" (尽管理想情况下它应该是错误的,因为其他预先存在的设置不应该是强制性的)。我也尝试将最后一个属性设置为 ovf:required="true" 但这也不起作用。

我不确定 ovf:required 标志是否是执行此操作的正确属性。ovf 规范指南对此不是很清楚,但它说明了这一点。

在自定义元素上,布尔型 ovf:required 属性指定元素中的信息是正确行为所必需的还是可选的。如果未指定,则 ovf:required 属性默认为 TRUE。OVF 包的消费者检测到所需的扩展并且它不理解将失败。

如何强制设置 root 密码?

4

1 回答 1

1

我通过将最小长度设置为 8 来解决这个问题。它仍然不是理想的解决方案,但我认为这解决了我的问题。

ovf:qualifiers="MinLen(8),MaxLen(20)"

因为 minlength 曾经是 0,它让用户跳过密码设置文本。现在它在部署期间警告用户说如果没有设置正确的值就无法打开虚拟机。

用户仍然可以跳过设置密码,但我无法打开虚拟机电源。您尝试打开它,它会要求您设置“root密码”属性。

这使得该属性是强制性的,但更简洁的方法(如果可用)是不让用户在不设置密码的情况下继续部署。

于 2018-06-27T04:27:00.533 回答