【问题标题】:vCloud: Create and configure a vm in vAppvCloud:在 vApp 中创建和配置 vm
【发布时间】:2014-08-07 19:08:37
【问题描述】:

我正在尝试使用 vCloud rest API 将虚拟机从模板部署到 vApp。我觉得应该有一种方法可以在生成 vm 时配置它(因为 UI 似乎可以这样做)但还没有找到方法。

我一直致力于重构 vApp 以向其添加 vm。下面的示例将添加一个 vm,但直到它被创建后我才想出配置它。具体来说,我想设置vm的VM Name、主机名和IP设置。

<?xml version="1.0" encoding="UTF-8"?>
<RecomposeVAppParams
   xmlns="http://www.vmware.com/vcloud/v1.5"
   xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1">
   <SourcedItem sourceDelete="false">
       <Source href="templateUri" />
   </SourcedItem>
   <AllEULAsAccepted>true</AllEULAsAccepted>
</RecomposeVAppParams>

创建虚拟机后,我可以重新配置它,但网络设置或主机名实际上都没有改变。 vCloud Director UI 告诉我它们已更改,但查看来宾操作系统显示设置未更改。

更改主机名示例(不起作用):

<vcloud:GuestCustomizationSection
   xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"
   xmlns:vcloud="http://www.vmware.com/vcloud/v1.5"
   href="vmUri/guestCustomizationSection/"
   ovf:required="false"
   type="application/vnd.vmware.vcloud.guestCustomizationSection+xml">
       <ovf:Info>Specifies Guest OS Customization Settings</ovf:Info>
       <vcloud:ComputerName>newName</vcloud:ComputerName>
</vcloud:GuestCustomizationSection>

是否有人能够在您部署虚拟机时对其进行配置。否则,有谁知道如何在部署 VM 后有效地配置它的设置。工作 XML 示例会很棒,但我仍然希望以其他形式提供帮助。

【问题讨论】:

    标签: vcloud-director-rest-api


    【解决方案1】:

    我能做到的最接近的方法是从目录中部署 vApp,在此过程中对其进行一些自定义。这不是您所要求的,但我希望它有所帮助。

    <?xml version="1.0" encoding="UTF-8"?>
    <InstantiateVAppTemplateParams
       xmlns="http://www.vmware.com/vcloud/v1.5"
       xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"
       name="<MyVappName"
       deploy="false"
       powerOn="false">
       <Description>vApp I deployed through REST API...</Description>
       <InstantiationParams>
       <NetworkConfigSection>
        <ovf:Info>Configuration parameters for logical networks</ovf:Info>
        <NetworkConfig networkName="App-Network-1">
         <Configuration>
          <ParentNetwork href="https://vcd-url/api/network/331a8ee3-33fd-4e4a-878e-1a6dce772fea" />
          <FenceMode>bridged</FenceMode>
         </Configuration>
        </NetworkConfig>
       </NetworkConfigSection>
       </InstantiationParams>
       <Source
          href="https://vcd-url/api/vAppTemplate/vappTemplate-d11de298-3041-2ae2-5e81-3ac2b4255423" />
    </InstantiateVAppTemplateParams>
    

    【讨论】:

      【解决方案2】:

      只需使用 SDK 来完成此任务。下载示例和库。将库添加到 proj 并从那里调用函数。 SDK 已经有一个实用程序库,用于处理与创建请求的 vcloud 的 http 通信并使用序列化来提供答案。 如果你真的想自己做请求,你只需运行 SDK 中的示例,让 Fiddler 监视通信并获取确切的请求并重现它。 我知道,因为我第一次开始使用文档发出 http 请求并遇到麻烦。

      【讨论】:

        猜你喜欢
        • 2017-07-16
        • 1970-01-01
        • 1970-01-01
        • 2017-03-10
        • 1970-01-01
        • 1970-01-01
        • 2020-09-06
        • 2020-10-16
        • 1970-01-01
        相关资源
        最近更新 更多