Terraform 基于自由空间的vsphere数据存储地形选择

Terraform 基于自由空间的vsphere数据存储地形选择,terraform,vsphere,Terraform,Vsphere,terraform是否有任何方法可以确定哪个vmware vsphere数据存储具有最多的可用空间 在进行资源调配时,我希望确保我的虚拟机最终位于唯一的数据存储上(即,两个虚拟机不应位于同一数据存储上),但也位于具有最多可用空间的数据存储上 因此,假设我的数据存储名为ds1、ds2、ds3、ds4、ds5等 ds1的使用率为99% ds2的使用率为70% ds3的使用率为10% ds4的使用率为60% ds5使用率为5% 我希望首先使用ds5(因为它有最多的可用空间),然后使用ds3(因为我

terraform是否有任何方法可以确定哪个vmware vsphere数据存储具有最多的可用空间

在进行资源调配时,我希望确保我的虚拟机最终位于唯一的数据存储上(即,两个虚拟机不应位于同一数据存储上),但也位于具有最多可用空间的数据存储上

因此,假设我的数据存储名为ds1、ds2、ds3、ds4、ds5等

  • ds1的使用率为99%
  • ds2的使用率为70%
  • ds3的使用率为10%
  • ds4的使用率为60%
  • ds5使用率为5%
我希望首先使用ds5(因为它有最多的可用空间),然后使用ds3(因为我们不能使用ds5,因为它已经被使用了,而ds3有第二多的可用空间),等等

我看到了如何硬编码数据存储,我想我可以提示用户使用数据存储,但我不希望使用这种静态方法。半自动化系统违背了自动化的目的

从ESXi主机的命令行中,我可以执行类似的操作,以使数据存储按从最大可用空间到最小可用空间的顺序进行:

df | sort -n -r | grep VMFS-5 | awk '!/vm-host|datastore17|datastore18/' | awk '{print $6}' | awk '{print $NF}' FS=/ | awk NR==1
但这方面存在一些问题:

1) 我不确定如何在terraform内部针对远程ESXi主机运行此程序并获得响应

2) terraform gitter频道上的一位精明的绅士提到,如果您多次运行terraform apply,因为这个值是动态确定的/不确定的,它可能最终会更改VMs数据存储

所以我不确定如何做到这一点。我不想静态地设置它或者每次都要提示它,但这可能是唯一的选择。还有其他人有其他想法吗

当然,我不可能是第一个遇到这种需要的人?:)