在 Terraform 脚本中设置 DigitalOcean 项目

Set DigitalOcean project in Terraform script

我有用于部署和配置 DigitalOcean droplet 的 terraform 脚本,我想为此实例指定自定义 DO 项目而不是默认项目。

我在 digitalocean_droplet 资源的文档中找不到 project 属性的任何引用:https://www.terraform.io/docs/providers/do/r/droplet.html

我希望能够做这样的事情:

resource "digitalocean_droplet" "node" {
  ...
  project = "test"
  ...
}

因此使用此 terraform 脚本部署的实例将分配给 DO 中的 test 项目:

DigitalOcean 项目尚未在 Terraform 提供程序中实现。有空位feature request

它很可能是一个额外的 Terraform resource,因为它们是一个额外的 API 对象。然后您可以添加其他资源

不过,这取决于它将如何实施。

希望你平安。

现在您可以按照以下方式进行操作:

resource "digitalocean_droplet" "node" {
  name               = "ubuntu-nyc1-node-01"
  image              = "ubuntu-18-04-x64"
  region             = "nyc1"
  size               = "s-1vcpu-1gb"
  private_networking = true
}

resource "digitalocean_project" "project" {
  name        = "Project"
  description = "project description"
  purpose     = "Web Application"
  environment = "Production"
  resources   = [
      "${digitalocean_droplet.node.urn}"
    ]
}

希望这段代码还能帮到你。

如果您想将 Droplet 放入一个已经存在的项目中而不是创建一个新项目,您可以执行以下操作:

data "digitalocean_project" "myproj" {
  name        = "myprojname"
}

resource "digitalocean_droplet" "mydroplet" {
  image  = "debian-11-x64"
  name   = "newVM"
  region = "fra1"
  size   = "s-1vcpu-1gb"
}

resource "digitalocean_project_resources" "terraform_rs" {
  project = data.digitalocean_project.myproj.id
  resources = [
     digitalocean_droplet.mydroplet.urn
  ]
}

这使用 data api 查询 DO 并获取您的项目,然后您不创建新项目而是创建新项目资源,这意味着您只需将资源分配给项目。希望这对以后的人有帮助。