我正在尝试使用
terraform plan
运行 Terraform 文件。我遇到了这个错误,这真的很奇怪,因为我在变量.tf 文件中声明了有问题的变量。我也尝试将它们直接写到我的 main.tf 文件中,但我遇到了同样的错误。当然,注释这三个变量可以使 Terraform 正常工作。
main.tf(我用X替换了我的数据):
[...]
clone {
template_uuid = data.vsphere_virtual_machine.XXX.id
customize {
windows_options {
computer_name = "XXX"
join_domain = "XX.XX"
domain_admin_user = "${var.domain_admin_user}"
domain_admin_password = "${var.domain_admin_password}"
admin_password = "${var.admin_password}"
time_zone = xxx
}
network_interface {
ipv4_address = "X.X.X.X"
ipv4_netmask = XX
dns_server_list = "${var.dns_list}"
dns_domain = "${var.domain_name}"
}
ipv4_gateway = "X.X.X.X"
}
}
}
错误信息:
Error: Missing required argument
│
│ with vsphere_virtual_machine.XXX,
│ on main.tf line 31, in resource "vsphere_virtual_machine" "XXX":
│ 31: domain_admin_user = "${var.domain_admin_user}"
│
│ "clone.0.customize.0.windows_options.0.join_domain": all of `clone.0.customize.0.windows_options.0.join_domain,clone.0.customize.0.windows_options.domain_admin_password,clone.0.customize.0.windows_options.domain_admin_user`
│ must be specified
╵
╷
│ Error: Missing required argument
│
│ with vsphere_virtual_machine.XXX,
│ on main.tf line 31, in resource "vsphere_virtual_machine" "XXX":
│ 31: domain_admin_user = "${var.domain_admin_user}"
│
│ "clone.0.customize.0.windows_options.0.domain_admin_password": all of `clone.0.customize.0.windows_options.0.domain_admin_password,clone.0.customize.0.windows_options.join_domain` must be specified
╵
╷
│ Error: Missing required argument
│
│ with vsphere_virtual_machine.XXX,
│ on main.tf line 31, in resource "vsphere_virtual_machine" "XXX":
│ 31: domain_admin_user = "${var.domain_admin_user}"
│
│ "clone.0.customize.0.windows_options.0.domain_admin_user": all of `clone.0.customize.0.windows_options.0.domain_admin_user,clone.0.customize.0.windows_options.join_domain` must be specified
将 vSphere 提供程序的版本设置为 2.5.1 为我解决了这个问题。 https://registry.terraform.io/providers/hashicorp/vsphere/2.5.1
terraform {
required_providers {
vsphere = {
source = "hashicorp/vsphere"
version = "2.5.1"
}
}
}