如何使用 Terraform 在 Vultr 上配置云基础设施
简介
Terraform 是一种声明式语言,允许创建、更新和删除基础架构资源。Terraform 允许你在一个文件中直接定义资源,而不是编写创建资源的步骤说明。如果资源尚不存在,Terraform 会创建新资源。如果资源已经存在,但可用状态与预期状态不符,Terraform 会对其进行修改。这样就能有效管理基础架构资源,尤其是当基础架构庞大而复杂时。
Terraform 由核心和提供者两个主要组件组成:
- 核心组件读取配置文件,存储资源状态,创建执行计划并应用。
- 提供者组件创建与各种平台交互的方法,使用它们的应用程序接口,如身份验证和授权、检索或操作资源。每个平台都有一个提供程序。
本文介绍如何使用 Terraform 配置 Vultr 云基础设施。您将使用 Vultr 账户 API 密钥调配云实例、Kubernetes 集群和数据库等多种资源。
前提条件
开始之前
- 部署一个Ubuntu 服务器作为管理机
- 从Vultr 客户门户设置页面激活并复制你的 Vultr API 密钥
启用后,将管理机器 IP 添加到允许的 IP 子网列表中
- 使用SSH 访问服务器
- 创建为非 root sudo 用户
- 切换到新的 sudo 用户账户
# su sysadmin
本文使用
sysadmin
用户作为示例,请将用户名替换为实际的系统用户账户。 - 要使用本文中的
curl
命令,请导出你的 Vultr API 密钥作为系统环境变量,以便使用本文中的curl
命令导出 VULTR_API_KEY="your-vultr-api-key"
安装 Terraform
- 将 Terraform GPG 密钥添加到服务器
$ curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
- 将 Terraform 官方软件源添加到 APT 源中
$ sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com focal main"
- 更新服务器软件包
$ sudo apt update
- 在服务器上安装 Terraform
$ sudo apt install terraform
安装 Vultr Terraform 提供程序
Vultr Terraform 提供程序允许你使用 Vultr 账户的 API 密钥创建基础设施资源。请按照以下步骤使用正确信息安装提供程序。
- 导航至用户主目录
$ cd
- 创建 Terraform 工作区以存储资源文件
mkdir vultr-terraform
- 切换到新目录
cd vultr-terraform
- 使用
Nano
等文本编辑器创建新文件provider.tf
,存储 Vultr 提供商信息$ nano provider.tf
- 在文件中添加以下内容
terraform { required_providers { vultr = { 源 = "vultr/vultr" 版本 = "2.15.1" } } } 提供者 "vultr" { api_key = var.VULTR_API_KEY } 变量 "VULTR_API_KEY" {}
保存并关闭文件。
上述配置指示 Terraform 使用 Vultr 作为提供程序,其标识符值为
vultr/vultr
,版本为2.15.1
。要查找最新版本,请访问Vultr 提供程序 GitHub 代码库。 - 创建一个名为
terraform.tfvars
的新文件,定义你的 Vultr API 密钥$ nano terraform.tfvars
- 在文件中添加以下指令。将
your_vultr_api_key
替换为你的实际值 Vultr API 密钥VULTR_API_KEY = "your_vultr_api_key"
保存并关闭文件。
- 初始化 Terraform 以安装 Vultr Terraform 提供商
$ terraform init
成功后,输出结果应如下所示:
Terraform 已成功初始化! 现在可以开始使用 Terraform 了。尝试运行 "terraform plan",查看 基础设施所需的任何更改。所有 Terraform 命令 现在应该可以运行了。
你已经激活并验证了 Terraform,使其与你的 Vultr 账户协同工作。你可以定义资源并将它们部署到你的账户,就像通过图形化的 Vultr 客户门户网站一样。
部署 Vultr 云实例
要使用 Terraform 部署 Vultr 云实例,请选择所需的服务器名称、规格和区域。然后,定义 Terraform 实例详细信息,并将更改应用到你的 Vultr 账户,如下所述。
- 创建新的 Terraform 资源文件
vultr_instance.tf
$ nano vultr_instance.tf
- 在文件中添加以下内容
resource "vultr_instance" "my_instance" { label = "sample-server 计划 = "vc2-1c-1gb" region = "sgp" os_id = "387" enable_ipv6 = true }
保存并关闭文件。
以下是上述模块文件的定义:
vultr_instance
:设置你打算部署的 Vultr 资源类型,vultr_instance
声明一个服务器实例。用你想要的别名替换example_ubuntu_instance
的值,以区分实例。label
(标签
):指定实例标签。用你想要的实例名称替换sample-server
,以便在你的 Vultr 账户中唯一标识该资源。plan
:vc2-1c-1gb
计划匹配vc2
类型、1 个 vCPU 内核和 1 GB 内存的 Vultr 实例。要查看所有可用计划的完整列表,请访问Vultr 计划文档区域
:指定部署实例所需的 Vultr 区域。sgp
会将实例部署到新加坡的 Vultr 位置。要查看所有可用地区的列表,请访问Vultr 数据中心位置页面,并使用位置的简称。例如,NJ
表示新泽西州
。使用以下命令按 ID 列出可用地点:$ curl "https://api.vultr.com/v2/regions" \ -X GET \ -H "Authorization:Bearer ${VULTR_API_KEY}"
os_id
:通过 ID 设置实例操作系统 (OS)。值387
代表 Ubuntu 20.04。要查看所有可用操作系统代码的列表,请运行以下命令:$ curl "https://api.vultr.com/v2/plans" \ -X GET \ -H "Authorization:Bearer ${VULTR_API_KEY}"
enable_ipv6
: 在 Vultr 实例上启用公共 IPV6 地址
- 预览即将应用的更改
$ terraform plan
输出:
Terraform 使用所选提供程序生成了以下执行计划。资源操作用以下符号表示: 创建 Terraform 将执行以下操作: # 将创建 vultr_instance.example_instance 资源 "vultr_instance" "example_instance" { allowed_bandwidth = (应用后已知) app_id = (应用后已知) 备份 = "禁用" date_created = (应用后已知) ddos_protection = false 默认密码 = (敏感值) 磁盘 = (应用后已知)
- 创建 Vultr 实例
$ terraform apply
出现提示时,输入 "
是
"确认要应用更改是否要执行这些操作? Terraform 将执行上述操作。 只接受 "是 "来批准。 输入值:
成功后,输出结果应如下所示:
vultr_instance.example_instance:创建... vultr_instance.example_instance:仍在创建...[10 秒已过] ... ... vultr_instance.example_instance:1m22s 后创建完成 [id=e8914416-4900-42bc-a5d0-80772240a29a] ... 应用完成!资源:1 已添加,0 已更改,0 已销毁。
您已在新加坡 Vultr 区域部署了一个 Ubuntu 20.04 实例,该实例有 1 个 vCPU 和 1 GB 内存。要查看实例详情,请访问 Vultr 账户仪表板,或使用 Vultr CLI 在终端会话中显示登录信息和使用统计信息。
部署 Kubernetes 集群
- 创建一个新的 Kubernetes 资源文件
kubernetes_cluster.tf
$ nano kubernetes_cluster.tf
- 在文件中添加以下内容
resource "vultr_kubernetes" "first_kubernetes_cluster" { region = "sgp" 标签 = "我的群集" 版本 = "v1.27.2 1" 节点池 { 节点数量 = 3 plan = "vc2-2c-4gb" label = "my-app-nodes" auto_scaler = true min_nodes = 1 max_nodes = 4 } }
保存并关闭文件。
以下是上述文件中的资源定义:
vultr_kubernetes
:将 Vultr Kubernetes 引擎(VKE)设为资源类型。first_kubernetes_cluster
是区分 Terraform 资源的模块别名,请用你想要的值替换它区域
:定义目标 Vultr 数据中心区域。sgp
会在 Vultr 新加坡区域部署 VKE 集群label
(标签
):设置 Kubernetes 集群标签。用描述集群的理想标签替换my-cluster
。版本
:指定目标 Kubernetes 版本。要查看可用的 VKE 版本,请运行以下命令:$ curl https://api.vultr.com/v2/kubernetes/versions
可用版本应如下所示显示在输出中:
{"版本":["v1.27.2 1", "v1.26.5 1", "v1.25.10 1"]}
节点池
:定义 VKE 节点规格节点数量
:设置要添加到群集中的 VKE 节点数量plan
:vc2-2c-4gb
定义了具有 2 个 vCPU 内核和 4 GB 内存的常规计算节点。查看Vultr 计划列表,设置所需的 VKE 节点规格。标签
:定义 VKE 节点的描述性标签。将my-app-nodes
替换为所需的节点标签auto-scaler
:true
可启用 VKE 节点上的自动缩放,false
则禁用自动缩放。min_nodes
:设置池中的最小节点数max_nodes
设置节点池中的最大节点数
要创建 VKE 群集,请确认节点池中至少有
1 个
已定义的节点。上述模块文件创建了一个 3 节点的 VKE 群集 - 查看即将应用的 Terraform 更改
$ terraform 计划
- 创建 Kubernetes 集群
terraform 应用
出现提示时,输入 "
是
",应用更改以创建 VKE 群集。等待集群创建完成并显示以下输出,并记下生成的集群 ID:vultr_kubernetes.first_kubernetes_cluster:仍在创建中...[已过 2 分钟 40 秒] vultr_kubernetes.first_kubernetes_cluster:仍在创建...[2m50s 已过] vultr_kubernetes.first_kubernetes_cluster:仍在创建...[3m0s 已过] vultr_kubernetes.first_kubernetes_cluster:3m6s后创建完成 [id=e565d8a5-480b-47f0-930e-a974d2767fef] 应用完成!资源:1 已添加,0 已更改,0 已销毁。
您创建了一个 3 节点的 Vultr Kubernetes 引擎集群,可自动扩展至最多 4 个节点。要查看集群信息,请访问你的 Vultr 账户仪表板,或使用 Vultr CLI 查看集群统计数据的详细输出。
向 Vultr Kubernetes 引擎(VKE)集群添加节点池
要添加新节点池并扩展 VKE 群集,请编辑群集 terraform 资源文件,并按下文所述定义新节点。
- 编辑
kubernetes_cluster.tf
文件$ nano kubernetes_cluster.tf
- 在文件末尾添加以下配置。用群集创建输出中显示的 ID 替换
vke_cluster_id
资源 "vultr_kubernetes_node_pools" "additional_node_pools" { cluster_id = "${vultr_kubernetes.first_kubernetes_cluster.id}" node_quantity = 1 节点数量 = 1 plan = "vc2-4c-8gb" label = "additional-node-pool" tag = "additional-node-pool" auto_scaler = true min_nodes = 1 max_nodes = 2 }
保存并关闭文件。
下面是节点资源定义的内容:
vultr_kubernetes_node_pools
:定义 Vultr Kubernetes 节点池资源类型additional-node-pools
:为 Terraform 资源名称设置别名cluster_id
:设置目标 VKE 集群,以便使用额外节点进行扩展。${vultr_kubernetes.first_kubernetes_cluster.id}
代表别名为first_kubernetes_cluster
的集群。节点数量
:定义额外节点的总数plan
:vc2-4c-8
GB:定义具有 4 个 vCPU 内核和 8 GB 内存的节点。label:标签
:定义自定义描述性节点标签标签
:用于标识节点池的可选标签auto_scaler
:激活或关闭群集节点的自动缩放功能min_nodes
:设置最小节点数max_nodes
设置最大节点数
- 创建额外的节点池,并将其附加到现有的 Kubernetes 集群上
$ terraform apply
输出结果应如下所示
vultr_kubernetes_node_pools.additional-node-pools:仍在创建中...[1m10s 已过] vultr_kubernetes_node_pools.additional-node-pools:仍在创建...[1m20s 已过] vultr_kubernetes_node_pools.additional-node-pools:仍在创建...[1m30s 已过] vultr_kubernetes_node_pools.additional-node-pools:1m37s 已过 [id=5567557a-7165-5153-524c-4b78483847] 创建完成 应用完成!资源:1 已添加,0 已更改,0 已销毁。
您已经扩展了 Kubernetes 集群,加入了新的额外节点。要验证更改,请访问集群仪表板或使用 Vultr CLI 查看连接到 VKE 集群的节点。
部署对象和块存储卷
您可以在 Vultr 实例上部署与 S3 兼容的 Vultr 对象存储卷或附加块存储卷。根据你选择的存储卷,定义 Terraform 模块配置,以便在你的 Vultr 账户上部署存储,具体步骤如下。
部署 Vultr 对象存储
- 创建一个新的
object_storage.tf
文件$ nano object_storage.tf
- 在文件中添加以下内容
资源 "vultr_object_storage" "example_object_storage" { cluster_id = 4 标签 = "对象存储示例 }
保存并关闭文件
上述配置通过以下声明将 Vultr Object Storage 部署到新加坡 Vultr 区域:
cluster_id
:设置 Vultr Object Storage 部署区域。值4
会将对象存储部署到 Vultr 新加坡区域。要查看区域 ID,请运行以下命令:$ curl "https://api.vultr.com/v2/object-storage/clusters" \ -X GET \ -H "Authorization:Bearer ${VULTR_API_KEY}"
标签
:定义用于识别的描述性 Vultr 对象存储标签
- 预览即将应用的 Terraform 对象存储变更
$ terraform 计划
输出:
# 将创建 vultr_object_storage.newexample_object_storage 资源 "vultr_object_storage" "newexample_object_storage" { cluster_id = 4 创建日期 = (应用后已知) id = (应用后已知) 标签 = "示例对象存储
- 将 Vultr Object Storage 卷应用到您的账户
$ terraform apply
输出:
vultr_object_storage.example_object_storage:仍在创建...[已过 50 秒] vultr_object_storage.example_object_storage:仍在创建...[1m0s 已过] vultr_object_storage.example_object_storage:1m2s 已过 [id=397d9828-1b8b-4b7e-85c2-76b2e2529cc7] 创建完成 应用完成!资源:1 已添加,1 已更改,0 已销毁。
在 Vultr Customer Portal 中,导航到Object Storage面板,查看已部署的 Vultr Object Storage。
要创建存储桶,请在服务器上安装 s3cmd CLI 工具并管理 Vultr 对象存储
部署 Vultr 块存储
- 创建新的
block_storage.tf
文件$ nano block_storage.tf
- 在文件中添加以下内容
资源 "vultr_block_storage" "example_block_storage" { size_gb = 10 区域 = "sgp" label = "新建块存储" }
保存并关闭文件
以下是资源配置所代表的内容:
vultr_block_storage
:将 Vultr 块存储定义为资源类型example_block_
storage:设置资源别名size_gb
:定义 Vultr 块存储卷空间。支持的数值范围为10
至 40000 GB。区域
:设置目标 Vultr 块存储部署区域
- 预览即将应用的 Terraform 块存储变更
$ terraform 计划
- 将 Vultr Object Storage 卷应用到您的账户
$ terraform 应用
输出:
vultr_block_storage.ubuntu_block_storage:仍在创建...[已过 20 秒] vultr_block_storage.ubuntu_block_storage:22秒后创建完成 [id=4c916f24-1e99-415c-9ddb-cf16f67f3f76] 应用完成!资源:1 已添加,0 已更改,1 已销毁。
要验证您的 Vultr Object Storage Volume 部署是否正确,请访问您的 Vultr 账户仪表板或使用 Vultr CLI 获取实例详细信息
将块存储附加到 Vultr 云实例
- 编辑
vultr_instance.tf
文件$ nano block_storage.tf
- 更新文件,在
attached_to_instance
声明中加入 Vultr 实例资源别名 ID资源 "vultr_block_storage" "example_block_storage" { size_gb = 10 region = "sgp" attached_too_instance = "${vultr_instance.my_instance.id}" } }
保存并关闭文件。
attached_to_instance
声明指示 Terraform 将 Vultr 块存储卷附加到目标实例别名 ID。用之前创建的实际 Vultr 服务器实例别名替换my_instance.
id 值。 - 应用更改,为 Vultr 实例添加块存储
$ terraform apply
输出:
vultr_block_storage.example_block_storage:正在修改...[id=168db64d-c2a1-435c-9f01-8af7279a8fcb] vultr_block_storage.example_block_storage:仍在修改...[id=168db64d-c2a1-435c-9f01-8af7279a8fcb,10秒已过] vultr_block_storage.example_block_storage:修改在 14 秒后完成 [id=168db64d-c2a1-435c-9f01-8af7279a8fcb] Apply complete! 应用完成!资源:添加 0 个,更改 1 个,销毁 0 个。
在 Vultr Block Storage 面板中,验证卷是否连接到服务器。要在服务器上使用 Vultr Block Storage 卷,请将其挂载到
/mnt
等服务器目录,以便所有系统用户访问。
部署托管数据库
在本节中,声明 Terraform 资源定义,以便
- 创建受管数据库
- 向托管数据库添加用户
- 查看已部署的托管数据库
创建 Vultr 受管数据库
- 创建新的数据库资源文件
database.tf
$ nano database.tf
- 在文件中添加以下声明
资源 "vultr_database" "prod_redis_database" { 数据库引擎 = "redis 数据库引擎版本 = "7" 区域 = "sgp" plan = "vultr-dbaas-startup-occ-mo-2-26-16" label = "生产数据库" }
保存并关闭文件。
上述 Vultr Managed Database for Redis 资源配置代表以下值:
vultr_database
:定义 Vultr 受管数据库资源- database
_engine
:设置 Vultr 受管数据库引擎,redis
定义 Redis 数据库。支持的值有redis
、mysql
和pg
。 数据库引擎版本
:设置 Vultr 受管数据库版本。7
部署 Redis 7.0 Vultr 数据库。要查看可用版本,请访问创建数据库 Vultr API 页面区域
:定义 Vultr 受管数据库区域,sgp
将数据库部署到新加坡 Vultr 区域计划
:设置 Vultr 托管数据库计划 ID。vultr-dbaas-startup-occ-mo-2-26-16
定义了使用 2 个 vCPus 和 16GB 内存的后端服务器的数据库。要查看可用计划列表,请运行以下命令:$ curl "https://api.vultr.com/v2/databases/plans" -X GET -H "Authorization:Bearer ${VULTR_API_KEY}" > export.txt
找到所需的计划,并在输出中验证支持的引擎,如下所示:
{"id":"vultr-dbaas-startup-occ-mo-2-26-16","number_of_nodes":1,"type":"occ_mo","vcpu_count":2,"ram":16384,"disk":42,"monthly_cost":160,"supported_engines":{"mysql":false,"pg":false,"redis":true},
标签
:为 Vultr 托管数据库定义自定义描述性标签。用你想要的值替换production-database
。
- 预览即将应用的更改
$ terraform 计划
你应该会在控制台中看到类似的输出
Terraform 将执行以下操作: # 将创建 vultr_database.redis 资源 "vultr_database" "prod_redis_database" { 数据库引擎 = "redis 数据库引擎版本 = "7" label = "生产数据库" plan = "vultr-dbaas-startup-occ-mo-2-26-16" region = "sgp" } 计划:1 表示添加,0 表示更改,0 表示销毁。
- 应用更改以部署 Vultr 受管数据库
$ terraform apply
输出:
vultr_database.redis:正在创建... vultr_database.redis: 仍在创建...[10 秒已过] vultr_database.redis: 仍在创建...[4m50s 已过] vultr_database.redis:4m56s 已过 [id=3339b4b9-55db-4b1e-9ce9-130ea1bc686f] 创建完成 应用完成!资源:1 已添加,0 已更改,0 已销毁。
您已经部署了一个 Vultr 受管数据库,请访问您的 Vultr 账户控制面板或使用 Vultr CLI 查看数据库详细信息。
创建新的 Vultr 受管数据库用户
- 编辑 database
.tf
文件$ nano database.tf
- 在文件末尾添加以下声明
资源 "vultr_database_user" "new_redis_database_user" { database_id = "${vultr_database.prod_redis_database.id}" 数据库id 用户名 = "redisUser" 密码 = "redisPassword" }
保存并关闭文件。
vultr_database_user
:定义新的 Vultr 受管数据库用户资源new_redis_database_user
:设置资源别名 ID 名称- database
_id
:设置应用新用户的目标数据库别名资源 ID。prod_redis_database.
id 指向先前部署的 Vultr 托管数据库资源。 username
:定义新的数据库用户名password
:设置新的数据库用户密码
- 应用更改以创建新的 Vultr 托管数据库用户
$ terraform apply
输出:
vultr_database.redis:正在修改...[id=4f87efba-d514-4ed0-876c-669b04ae3e78] vultr_database.redis:修改在 6 秒后完成 [id=4f87efba-d514-4ed0-876c-669b04ae3e78] vultr_database_user.redis_database_user:创建... vultr_database_user.redis_database_user:7秒后创建完成 [id=redisUser] 应用完成!资源:1 已添加,1 已更改,0 已销毁。
您已向 Vultr 受管数据库添加了一个新用户,要验证新用户,请使用您的 Vultr 账户或 Vultr CLI 访问受管数据库控制面板
创建 Vultr 虚拟私有云 (VPC)
Vultr 虚拟私有云(VPC)是一个隔离的私有网络,可将多个 Vultr 实例互连到同一子网。Vultr 提供 VPC 和 VPC 2.0 两种产品,用于将 Vultr 实例互连在一起。在本节中,我们将按照下文所述把这两个 VPC 版本部署到你的 Vultr 账户。
部署 Vultr VPC 网络
- 创建新的 VPC 资源
vpc.tf
$ nano vpc.tf
- 在文件中添加以下内容
资源 "vultr_vpc" "prod_vpc" { description = "生产服务器 VPC 区域 = "sgp" v4_subnet = "192.168.0.0" v4_subnet_mask = 24 }
保存并关闭文件。
以下是上述资源定义所代表的内容:
vultr_vpc
:定义 Vultr VPC 资源类型prod_vpc
:设置用于标识的资源别名description
(描述
):定义 Vultr VPC 的描述性标签区域
:设置部署 VPC 的 Vultr 区域v4_子网
定义 Vultr VPC 私有 IP 地址子网。可以使用以下任何允许的 RFC1918 地址类别:10.0.0.0 - 10.255.255.255(10/8 前缀) 172.16.0.0 - 172.31.255.255(172.16/12 前缀) 192.168.0.0 - 192.168.255.255(192.168/16 前缀)
v4_subnet_mask
:设置专用 IP 地址子网掩码。24
为 VPC IP 块设置255.255.255.0
子网掩码
- 应用更改以创建 Vultr VPC
$ terraform apply
输出:
vultr_vpc.prod_vpc:创建... vultr_vpc.prod_vpc:7 秒后创建完成 [id=61591879-383c-44fa-a8ee-cbbbe3f500cb] 返回结果
您已创建 Vultr VPC 资源。要验证专用网络,请访问你的Vultr 账户VPC 网络页面
将 Vultr VPC 附加到 Vultr 云实例
- 编辑目标 Vultr 云实例文件
$ nano vultr_instance.tf
- 更新文件,在
vpc_ids
声明中加入部署过程中生成的 Vultr VPC ID资源 "vultr_instance" "my_instance" { label = "sample-server plan = "vc2-1c-1gb" region = "sgp" os_id = "387" enable_ipv6 = true vpc_ids = ["61591879-383c-44fa-a8ee-cbbbe3f500cb"]) }
保存并关闭文件
- 将更改应用到 Vultr 账户
$ terraform apply
输出:
vultr_instance.mynew_instance:仍在修改...[id=db294f28-e98e-4eb5-9d16-192c6210f528,10 秒已过] vultr_instance. vultr_instance.mynew_instance:修改在 18 秒后完成 [id=db294f28-e98e-4eb5-9d16-192c6210f528] Apply complete! 应用完成!资源:新增 0 个,更改 2 个,销毁 0 个。
在 Vultr 客户门户中,访问 Vultr 实例设置页面,验证是否已连接到 Vultr VPC 网络。
销毁 Terraform 基础架构资源
- 要销毁 Vultr 账户中已部署的 Terraform 基础架构资源,请使用以下语法定义目标资源
$ terraform destroy -target=Vultr-resource_type.resource-name
例如,要销毁之前部署的 Vultr 云实例,请运行以下命令
$ terraform destroy -target=vultr_instance_my_instance
出现提示时,请确认要销毁的资源,输入
yes
,然后按ENTER 键销毁 Vultr 实例,如以下输出所示:# vultr_block_storage.example_block_storage 将被销毁 - 资源 "vultr_block_storage" "example_block_storage" { - attached_too_instance = "db294f28-e98e-4eb5-9d16-192c6210f528" -> null - block_type = "high_perf" -> null } # vultr_instance.mynew_instance 将被销毁 - 资源 "vultr_instance" "mynew_instance" { - allowed_bandwidth = 3 -> null - app_id = 0 -> null 你真的想销毁所有资源吗? 如上图所示,Terraform 会销毁所有受管基础设施。 无法撤销。确认时只接受 "是"。 输入一个值:
- 要删除使用 Terraform 部署的所有云基础设施资源,请运行以下命令:
$ terraform destroy
不建议运行上述命令,使用该命令时,请确认你正在销毁使用 Terraform 部署的正确 Vultr 资源
确认要销毁的基础架构资源,然后输入
yes
以销毁所有资源。若要取消,请按CTRLC。成功后,输出结果应如下所示:计划:0 表示添加,0 表示更改,7 表示销毁。 真的要销毁所有资源吗? 如上图所示,Terraform 会销毁所有受管基础架构。 无法撤销。只接受 "是 "来确认。 输入值:是 vultr_vpc.prod_vpc:正在销毁...[id=61591879-383c-44fa-a8ee-cbbbe3f500cb] vultr_database_user.new_redis_database_user:销毁...[id=redisUser] vultr_object_storage.example_object_storage:正在销毁...[id=397d9828-1b8b-4b7e-85c2-76b2e2529cc7] vultr_block_storage.example_block_storage:销毁...[id=168db64d-c2a1-435c-9f01-8af7279a8fcb] vultr_object_storage.newexample_object_storage:销毁...[id=638a9869-f66f-47ab-a442-1fd096fd24b4] vultr_object_storage.example_object_storage:4秒后销毁完成
Terraform 命令
要正确运行 Terraform 以部署 Vultr 云基础设施资源,请按照以下操作命令初始化、验证并将资源配置应用到 Vultr 帐户。
初始化
:初始化 Terraform 工作目录并安装定义的提供程序插件刷新
:读取云基础设施资源的状态,更新 Terraform 状态文件以匹配资源状态验证
:查找 Terraform 资源文件中的任何语法、格式错误或错误配置计划
:列出即将应用到 Vultr 账户的 Terraform 变更应用
:将已定义的 Terraform 资源配置应用到 Vultr 账户销毁
:删除工作项目目录中同步的 Vultr 云基础设施 Terraform 资源
有关 Terraform 命令的更多信息,请访问官方 CLI 文档
结论
您已经安装了 Terraform 和 Vultr Terraform 提供商,可以使用 Vultr API 密钥调配云资源。你可以创建多个项目目录,在多个位置存储不同的资源定义,并使用terraform destroy
等强命令避免覆盖任何更改。有关如何使用 Terraform 的更多信息,请访问Vultr Terraform 注册表
版权声明:
作者:指北针
链接:https://www.vpscue.com/48682.html
来源:主机指北
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论