2017-10-19 149 views
0

是否有創建一個虛擬機實例時使用vSphere數據源設置NETWORK_INTERFACE標籤的方法嗎?使用terraform vSphere資源設置NETWORK_INTERFACE標籤

的文檔似乎說出你只能使用名稱。數據源僅導出ID。

我已經把我在下面想什麼,但不知道它會工作。我是新來的這個tbh。

data "vsphere_distributed_virtual_switch" "dvs" { 
    name   = "my_dvs" 
    datacenter_id = "${data.vsphere_datacenter.datacenter.id}" 
} 

data "vsphere_network" "dgp" { 
    name   = "my_dgp" 
    datacenter_id = "${data.vsphere_datacenter.datacenter.id}" 
} 

resource "vsphere_virtual_machine" "linux_box" { 
    ... 
    network_interface { 
    label = "${data.vsphere_network.dvs.id}/${data.vsphere_network.dgp.id}" 
    } 
} 

回答

0

運行一個測試用例來證明它。

保存下列代碼進行data.tf

data "vsphere_datacenter" "datacenter" { 
    name = "dc1" 
} 

data "vsphere_distributed_virtual_switch" "dvs" { 
    name   = "my_dvs" 
    datacenter_id = "${data.vsphere_datacenter.datacenter.id}" 
} 

data "vsphere_network" "dgp" { 
    name   = "my_dgp" 
    datacenter_id = "${data.vsphere_datacenter.datacenter.id}" 
} 

運行terraform planterraform apply由於沒有資源創建/銷燬,因此運行它是安全的。

運行後terraform apply,它會生成一個文件terraform.tfstate,查看這個文件,如果id是你正在尋找的名稱。

如果是,你寫的代碼是正確的。

+0

這比我在尋找不幸的是有點大不同。如果它將我的名稱作爲id並且我必須按名稱查找id,那麼我基本上無緣無故使用數據源。我將進行測試,看看是否可以在提供商中使用該id – vernak2539

+0

然後,您未知的是什麼部分? – BMW

+1

我想我一直在尋找一種方式,在虛擬機資源使用的ID,因爲他們多一點絕對的。我在github上提交了一個問題,似乎vm資源不接受它當前形式的ID,但正在爲新版本進行工作。因此,此時,vSphere數據源與VM資源不兼容。感謝您抽出寶貴的時間! – vernak2539