Terraform基于可用空间选择vsphere数据存储区

时间:2018-04-13 22:03:11

标签: terraform vsphere

有没有办法使用terraform来确定哪个vmware vsphere数据存储区具有最多可用空间?

当我配置时,我想确保我的VM最终在唯一的数据存储上(即,两个vms不应该在同一个数据存储上结束),而且还要在具有最多可用空间的数据存储上。

因此,假设我的数据存储区名为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多次应用,因为这个值是动态确定/非确定性的,它可能最终会改变VM数据存储

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

当然,我不能成为第一个遇到这种需求的人吗? :)

0 个答案:

没有答案