连接的独立ESXi主机上的Terraform vsphere_资源_池-获取资源池时出错

连接的独立ESXi主机上的Terraform vsphere_资源_池-获取资源池时出错,terraform,devops,vsphere,Terraform,Devops,Vsphere,我几乎是terraform和vsphere提供商的noob,我遇到了所有的noob问题 我们希望在连接到vsphere的受管独立(非群集)ESXi 65主机上安装VM,但我无法获得正确的resource_pool resource语句,如图所示,我有点绝望,尝试了我能想到的所有排列方式: provider "vsphere" { vsphere_server = "vcs1.fq.dn" alias = "prod" allow_unverified_ssl = true } da

我几乎是terraform和vsphere提供商的noob,我遇到了所有的noob问题

我们希望在连接到vsphere的受管独立(非群集)ESXi 65主机上安装VM,但我无法获得正确的resource_pool resource语句,如图所示,我有点绝望,尝试了我能想到的所有排列方式:

provider "vsphere" {
  vsphere_server = "vcs1.fq.dn"
  alias = "prod"
  allow_unverified_ssl = true
}

data "vsphere_datacenter" "prod" {
  provider = vsphere.prod
  name = "PROD Datacenter"
}

data "vsphere_resource_pool" "vmhost23" {
  provider = vsphere.prod
  datacenter_id = data.vsphere_datacenter.prod.id

#  name          = "vmhost23/Resources"
#  name          = "vmhost23/resources"
#  name          = "vmhost23/"
#  name          = "/"
  name          = "/Resources"
#  name          = "/resources"

#  name          = "vmhost23/Resources/"
#  name          = "vmhost23/resources/"
#  name          = "vmhost23/"
#  name          = "/"
#  name          = "/Resources/"
#  name          = "/resources/"

#  name          = "vmhost23.fq.dn"
#  name          = "vmhost23.fq.dn/"
#  name          = "vmhost23.fq.dn/Resources/"
#  name          = "vmhost23.fq.dn/Resources"
#  name          = "vmhost23.fq.dn/resources/"
#  name          = "vmhost23.fq.dn/resources"

}
不幸的是,这里没有快乐:

data.vsphere_datacenter.prod: Refreshing state...
data.vsphere_datastore.vmhost23: Refreshing state...
data.vsphere_resource_pool.vmhost23: Refreshing state...
data.vsphere_network.DMZ-prod: Refreshing state...
data.vsphere_datacenter.dc: Refreshing state...
data.vsphere_datastore.datastore: Refreshing state...
data.vsphere_compute_cluster.cluster: Refreshing state...
data.vsphere_datastore_cluster.datastore_cluster: Refreshing state...
data.vsphere_network.TEST-APP: Refreshing state...
data.vsphere_virtual_machine.template: Refreshing state...
:
vsphere_virtual_machine.prdsat: Refreshing state... [id=42190b77-a6a7-8693-e05f-c11528d1afa4]

Error: error fetching resource pool: resource pool '/Resources' not found

  on vm-prdsplidx01x.tf line 4, in data "vsphere_resource_pool" "vmhost23":
   4: data "vsphere_resource_pool" "vmhost23" {

我找到了解决办法

在我的例子中,主机在一个文件夹中这一事实——是的,真的——造成了所有的不同。这是一个如此微不足道的数据点,以至于我忽略了它

所以,在我的情况下,有效的是

data "vsphere_resource_pool" "vmhost23" {
  provider = vsphere.prod
  name          = "FolderName/vmhost23.fq.dn"
  datacenter_id = data.vsphere_datacenter.prod.id
}
大写很重要,似乎需要ESXi主机名上的FQDN;但是,如果您找到了一种方法使它能够使用短主机名或小写文件夹名,请一定纠正我


所以,又一个障碍下来了,只剩下31个了!谢谢你帮我玩鸭子游戏。

我在vCenter 7上启用了DRS/HA,这有助于获得资源池。另外,使用govc将获得资源池ID的路径

关于 govc find/-type p

terraform导入vsphere\u resource\u pool.resource\u pool/dc1/host/compute-cluster1/Resources/ 以上内容可以让您了解tfstate