0

我能够使用 terraform 创建虚拟机,但是……当我使用上下文块时,我遇到了问题

错误:不支持的块类型

在 terraform.tf 第 34 行,在资源“opennebula_template”“mytemplate”中:34: context {

这里不需要“上下文”类型的块。您的意思是定义参数“上下文”吗?如果是这样,请使用等号为其赋值。

我完全按照指南在此处 https://registry.terraform.io/providers/OpenNebula/opennebula/latest/docs/resources/virtual_machine中的正式 terraform 文档中显示的方式添加它

variable "one_endpoint" {}
variable "one_username" {}
variable "one_password" {}
variable "one_flow_endpoint" {}

provider "opennebula" {
  endpoint      = var.one_endpoint
  flow_endpoint = var.one_flow_endpoint
  username      = var.one_username
  password      = var.one_password
}

#########################################################################

resource "opennebula_image" "CentOS7-clone" {
    clone_from_image = 35
    name             = "CentOS7-clone"
    datastore_id     = 1
    persistent       = false
    permissions      = "660"
    group            = "oneadmin"
}

#########################################################################

resource "opennebula_virtual_machine" "demo" {
  count       = 1
  name        = "centos7"
  cpu         = 2
  vcpu        = 2
  memory      = 4096
  group       = "oneadmin"
  permissions = "660"

  context {
    NETWORK      = "YES"
    HOSTNAME     = "$NAME"
    START_SCRIPT ="yum upgrade"
  }

  graphics {
    type   = "VNC"
    listen = "0.0.0.0"
    keymap = "fr"
  }

  os {
    arch = "x86_64"
    boot = "disk0"
  }

  disk {
    image_id = opennebula_image.CentOS7-clone.id
    size     = 10000
    target   = "vda"
    driver   = "qcow2"
  }

  nic {
    model           = "virtio"
    network_id      = 7
    security_groups = [0]
  }

  vmgroup {
    vmgroup_id = 2
    role       = "vm-group"
  }

  tags = {
    environment = "dev"
  }

  timeout = 5
}
4

1 回答 1

0

您需要使用等号定义上下文块,如下所示:

context = {
    NETWORK      = "YES"
    HOSTNAME     = "$NAME"
    START_SCRIPT ="yum upgrade"
}

仅在 Terraform <0.12(Terraform 0.12 Compatibility for Providers - Terraform by HashiCorp)中才支持省略用于定义属性的等号。我们在更新 GitHub 存储库中的文档时遇到了问题。

于 2020-12-28T16:10:09.950 回答