在 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_project_resources" "project-a"
(反映DigitalOcean's API)或
- 直接在
resource "digitalocean_project" "a"
中(如在 Ken Powers' issue comment 中)。
不过,这取决于它将如何实施。
希望你平安。
现在您可以按照以下方式进行操作:
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 并获取您的项目,然后您不创建新项目而是创建新项目资源,这意味着您只需将资源分配给项目。希望这对以后的人有帮助。
我有用于部署和配置 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_project_resources" "project-a"
(反映DigitalOcean's API)或 - 直接在
resource "digitalocean_project" "a"
中(如在 Ken Powers' issue comment 中)。
不过,这取决于它将如何实施。
希望你平安。
现在您可以按照以下方式进行操作:
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 并获取您的项目,然后您不创建新项目而是创建新项目资源,这意味着您只需将资源分配给项目。希望这对以后的人有帮助。