使用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
    
  3. 进入该目录:
    1
    
    $ cd vultr-terraform
    
  4. 创建provider.tf文件存储Vultr提供商信息:
    1
    
    $ nano provider.tf
    
  5. 复制以下内容:
     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" {}
    
  6. 创建terraform.tfvars文件定义API密钥:
    1
    
    $ nano terraform.tfvars
    
    内容:
    1
    
    VULTR_API_KEY = "vultr_api_key"
    
  7. 初始化Terraform安装Vultr提供商:
    1
    
    $ terraform init
    

部署Vultr云计算实例

  1. 创建vultr_instance.tf文件:

    1
    
    $ nano vultr_instance.tf
    
  2. 添加以下配置:

    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: 指定要部署的资源类型
    • label: 实例标签
    • plan: 实例规格(vc2类型,1vCPU核心,1GB内存)
    • region: 部署区域(sgp表示新加坡)
    • os_id: 操作系统ID(2284代表Ubuntu 24.04)
  3. 预览变更:

    1
    
    $ terraform plan
    
  4. 创建实例:

    1
    
    $ terraform apply
    

批量部署多种资源

  1. 创建main.tf文件:

    1
    
    $ nano main.tf
    
  2. 添加以下配置:

     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
        }
    }
    

    该配置定义了两类资源:

    • 云计算实例:在班加罗尔区域部署1CPU/1GB内存的Ubuntu 24.04实例
    • Kubernetes集群:包含3个节点(每个2CPU/4GB内存),支持1-4个节点的自动扩展
  3. 预览并应用变更:

    1
    2
    
    $ terraform plan
    $ terraform apply
    

扩展Vultr应用

您还可以部署其他Vultr资源,如对象存储、块存储和托管数据库。参考以下指南:

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

本文由Vultr赞助。Vultr是全球最大的私有云平台,已为185个国家/地区的150万客户提供灵活、可扩展的云计算解决方案。

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