使用Terraform自动化Vultr云基础设施部署

本文详细介绍了如何使用Terraform工具自动化部署Vultr云资源,包括云实例和Kubernetes集群的配置、初始化及管理,涵盖完整的代码示例和操作步骤。

使用Terraform自动化Vultr云基础设施

Terraform是一种开源的基础设施即代码(IaC)工具,允许用户使用声明式配置文件定义、配置和管理云基础设施。通过Terraform,您可以自动化创建和管理服务器、数据库、网络和存储等资源,跨多个云提供商。

Terraform的一个优势是能够维护基础设施的状态,确保一致性,并支持轻松更新或扩展。通过使用版本控制的配置,团队可以更有效地协作,基础设施变更变得可重复和可预测。

本文介绍如何使用Terraform配置Vultr云基础设施。您将使用Vultr账户API密钥配置多个资源,如云实例、Kubernetes集群和数据库。

使用Terraform配置Vultr资源

设置Terraform

  1. 根据您的操作系统类型下载Terraform。
  2. 创建一个Terraform目录来存储资源文件。
1
$ mkdir vultr-terraform
  1. 切换到该目录。
1
$ cd vultr-terraform
  1. 创建一个新文件provider.tf来存储Vultr提供者信息。
1
$ nano provider.tf
  1. 复制并粘贴以下内容。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
terraform {
    required_providers {
        vultr = {
            source = "vultr/vultr"
            version = "2.21.0"
        }
    }
}

provider "vultr" {
    api_key = var.VULTR_API_KEY
}

variable "VULTR_API_KEY" {}
  1. 保存并关闭文件。
  2. 创建一个名为terraform.tfvars的新文件来定义您的Vultr API密钥。
1
$ nano terraform.tfvars
  1. 复制并粘贴以下指令到文件中。
1
VULTR_API_KEY = "vultr_api_key"
  1. 初始化Terraform以安装Vultr Terraform提供者。
1
$ terraform init

输出应显示一条消息,告知Terraform已成功初始化。

配置Vultr云计算实例

  1. 创建一个名为vultr_instance.tf的新文件。
1
$ nano vultr_instance.tf
  1. 复制并粘贴以下内容。
1
2
3
4
5
6
7
resource "vultr_instance" "my_instance" {
    label = "sample-server"
    plan = "vc2-1c-1gb"
    region = "sgp"
    os_id = "2284"
    enable_ipv6 = true
}
  • vultr_instance:设置您要部署的Vultr资源类型。
  • label:指定实例标签。
  • plan:设置您所需的实例规格。vc2-1c-1gb计划匹配一个Vultr实例,类型为vc2,1个vCPU核心和1 GB RAM。
  • region:指定您要部署实例的Vultr区域。sgp将实例部署到新加坡Vultr位置。
  • os_id:按ID设置实例操作系统。值2284代表Ubuntu 24.04。
  1. 预览您将要应用的更改。
1
$ terraform plan
  1. 创建Vultr实例。
1
$ terraform apply

当提示时,输入yes以确认您要应用更改。成功后,您应该能够在Vultr客户门户中看到创建的资源。

一次配置多个资源

  1. 创建一个名为main.tf的新文件。
1
$ nano main.tf
  1. 复制并粘贴以下内容。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
resource "vultr_instance" "my_instance" {
    label       = "sample-server2"
    plan        = "vc2-1c-1gb"
    region      = "blr"
    os_id       = "2284"
    enable_ipv6 = true
}

resource "vultr_kubernetes" "kubernetes_cluster" {
    region  = "blr"
    label   = "my-cluster2"
    version = "v1.31.0+1"

node_pools {
    node_quantity = 3
    plan          = "vc2-2c-4gb"
    label         = "my-app-nodes"
    auto_scaler   = true
    min_nodes     = 1
    max_nodes     = 4
    }
}
  1. 保存并关闭文件。

此Terraform配置在Vultr上定义了两个资源:

  • Vultr云计算实例vultr_instance资源配置一个标记为“sample-server2”的虚拟机(VM)。实例配置为:

    • 使用vc2-1c-1gb计划,提供1个CPU和1GB RAM。
    • 部署在班加罗尔(blr)区域。
    • 运行Ubuntu 24.04(由os_id = "2284"指定)。
    • 为实例启用IPv6。
  • Vultr Kubernetes集群vultr_kubernetes资源在班加罗尔(blr)区域设置一个标记为“my-cluster2”的Kubernetes集群,Kubernetes版本为v1.31.0+1。集群具有:

    • 一个包含3个节点的节点池,每个节点使用vc2-2c-4gb计划(每个节点2个CPU和4GB RAM)。
    • 启用自动扩展,池中最小节点数为1,最大节点数为4。

此配置允许通过Terraform管理单个云计算实例和一个可扩展的Kubernetes集群。

  1. 预览您将要应用的更改。
1
$ terraform plan
  1. 创建Vultr资源。
1
$ terraform apply

当提示时,输入yes以确认您要应用更改。成功后,您应该能够在Vultr客户门户中看到创建的资源。

您还可以配置其他Vultr资源,如对象和块存储,以及Vultr托管数据库。

使用Vultr做更多

  • 在Rocky Linux 9上安装Node.js和NPM。
  • 在Ubuntu 24.04上安装Python和Pip。
  • 在Ubuntu 24.04上安装Podman。
  • 在Rocky Linux 9上安装Docker。

本文由Vultr赞助。Vultr是世界上最大的私有云计算平台。作为开发者的最爱,Vultr已为185个国家的超过150万客户提供灵活、可扩展的全球云计算、云GPU、裸机和云存储解决方案。了解更多关于Vultr的信息。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计