terraform - Terraform:如何在创建 VM 时使用目录名称
问题描述
我正在尝试使用 terraform VCD 提供程序在 VmWare Vcloud 数据中心创建 VM。这是完整的代码
我做了什么
provider "vcd" {
user = "abc"
password = "xyz"
org = "I1250-Se"
vdc = "I1250-Se"
url = "https://nlu02.abc.com/api"
max_retry_timeout = "30"
allow_unverified_ssl = "true"
}
resource "vcd_vapp" "web" {
name = "web"
power_on = "true"
}
data "vcd_vapp" "web" {
name = "web"
org = "I1250-Se"
}
data "vcd_catalog_item" "my-cat-item" {
org = "I1250-Se"
name = data.vcd_catalog.my-cat.name
catalog = data.vcd_catalog.my-cat.name
}
data "vcd_catalog" "my-cat" {
org = ""
name = "ID120_ISO"
}
resource "vcd_vapp_vm" "web1" {
vapp_name = data.vcd_vapp.web.name
name = var.vmname
catalog_name = "ID120_ISO"
template_name = ""
memory = 2048
cpus = 2
cpu_cores = 1
}
错误是什么
vcd_vapp_vm.web1:正在创建...
错误:查找目录时出错:未找到 [ENF] 实体
在 main.tf 第 33 行,在资源“vcd_vapp_vm”“web1”中:33:资源“vcd_vapp_vm”“web1”{
环境
Terraform v0.12.18
操作系统:
Linux jenvm 4.4.0-142-generic #168-Ubuntu SMP Wed Jan 16 21:00:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
期望什么
该脚本应接受目录名称(已存在)并创建 VM。需要注意的另一点是,我所指的目录名称不包含任何 VApp 模板,因此不确定它的行为方式。我期望的是,它应该接受目录名称并使用媒体(ISO 映像)通过 terraform 在新创建的 VM 上安装操作系统。
请建议。
解决方案
目前正在审查在没有 Vapp 模板的情况下创建 VM 的此类功能。目录名称应包含 VApp 模板,不能将 ISO 映像视为目录名称。
因此,为了解决此问题,请将有效的 OVA 文件作为 VApp 模板上传并在代码中使用。谢谢
推荐阅读
- python - 使用 psycopg2 将数据从 python 上传到 postgresql 时将“nan”替换为空白
- bash - 为什么 echo 命令会返回这种结果?
- java - 如何使用简单的 java 命令运行 Maven 项目
- json - Kotlin Json 解析
- excel - 如何在Excel中引用完整的列,其中有一个值
- c - fopen 在 main 中有效,但在另一个文件中的函数中无效
- haskell - 显示自定义复杂数据类
- javascript - 将 object-props 传递给新对象的构造函数
- reactjs - 反应 axios NTLM 身份验证
- karate - 将部分对象与表数据匹配