You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过vCenter API将模板/OVA等文件上传至数据存储

解决方案

关于你的两个疑问

  1. 完全可以:通过vCenter API就能把本地Ubuntu主机上的ISO/OVA/VMDK上传到ESXi的数据存储,不需要直接和ESXi主机建立单独认证会话,全程用vCenter的认证凭证即可完成操作。
  2. 可行:只用vCenter一套认证体系完全没问题,不用维护两套认证逻辑。你之前的尝试没成功,核心问题是URL格式不对,下面是修正后的正确实现:

正确的Ansible URI调用示例

- name: 上传ISO到vCenter管理的数据存储
  uri:
    url: "https://{{ vcenter_hostname }}/folder/ISO/Some-test-file.iso?dsName={{ upload_datastore }}"
    method: PUT
    src: ISOs/debian/11/debian-11.9.0-amd64-DVD-1.iso
    validate_certs: no
    headers:
      Cookie: "{{ auth_cookie.set_cookie }}"
    status_code: 201

关键修正细节

  • URL格式:vCenter的/folder接口需要通过dsName查询参数指定目标数据存储名称,不能把数据存储名直接嵌入路径。路径里的ISO/Some-test-file.iso是数据存储内的目标目录和文件名(目录不存在时vCenter会自动创建)。
  • 认证设置:无需开启force_basic_auth,直接用vCenter登录返回的会话Cookie就能完成权限验证,避免重复认证流程。
  • 结果判断:文件上传成功后vCenter会返回201 Created,添加status_code: 201能让Ansible准确判断任务是否执行成功。

OVA/VMDK上传说明

如果是上传OVA或VMDK文件,操作逻辑和ISO完全一致,只需修改src和URL中的文件名即可。若需要将OVA直接部署为虚拟机,则需调用vCenter的OVA部署API,但单纯将文件上传至数据存储的话,上述方法完全适用。

内容的提问来源于stack exchange,提问作者OldguardMD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:34:56