使用Terraform配置vSphere虚拟机,我希望能够在tfvars文件中提供IP地址(以及网关和网络掩码),但是如果未提供值,则将虚拟机默认设置为使用DHCP。我知道如果'vsphere_virtual_machine'资源''自定义'块包含一个空的'network_interface'块,它将使用DHCP。我希望将variables.tf文件中的设置的默认值设置为“”,如果可以的话我可以设置值,如果不使用DHCP则可以使用DHCP,但是我得到一个错误提示:
错误:module.vm.vsphere_virtual_machine.node: clone.0.customize.0.network_interface.0.ipv4_netmask:无法解析'' 如int:strconv.ParseInt:解析“”:无效语法
因此,输入空白字符串将不会进行解析,并且如果值是空白,也不会仅将整个network_interface留空。
我不能在子资源上使用COUNT,所以到目前为止我唯一想到的就是将两个完整的,几乎完全相同的'vsphere_virtual_machine'资源放入我的模块中,然后在两个资源上都放入COUNT语句创建一个,取决于是否提供了网络设置,但是,伙计,这看起来很丑吗??
答案 0 :(得分:1)
我认为你很幸运。自从将近一年以来,我一直在等待这个完全相同的问题得到解决。
瞧瞧,Terraform v0.12.0-alpha1: They now support dynamic block definitions instead of just static ones
享受,而我要像您提到的那样扔掉几百行值得破解的东西...