View Categories

Hướng Dẫn Cấu Hình Automation bằng Terraform để quản lý Instances trên Cloud Gen 4

9 phút đọc

Bài viết này sẽ hướng dẫn Quý Khách cách tạo và cấu hình Automation bằng Terraform, giúp Quý Khách dễ dàng triển khai và quản lý các Instances trên Cloud Gen 4. Trước tiên để có thể sử dụng được tính năng Automation bằng Terraform, Quý Khách cần có API Key và Secret Key. Quý khách có thể tham khảo cách tạo và lấy API Key trên Cloud Gen 4 của vHost tại đây.

Sau khi Quý Khách đã có được API Key, vHost sẽ hướng dẫn Quý Khách tiếp tục sử dụng API Key đó để sử dụng tính năng Automation bằng Terraform trên Cloud Gen 4.

1. Giới thiệu #

1.1. Khái niệm về Terraform #

Terraform là một công cụ mã nguồn mở do HashiCorp phát triển, được sử dụng để tự động hóa quá trình triển khai và quản lý cơ sở hạ tầng dưới dạng mã (Infrastructure as Code – IaC). Terraform giúp người dùng định nghĩa và cung cấp hạ tầng trên các nền tảng đám mây khác nhau (như AWS, Azure, Google Cloud, v.v.), các dịch vụ phần mềm, và cả các hệ thống hạ tầng vật lý hoặc ảo hóa.

1.2. Các tính năng nổi bật của Terraform #

  • Infrastructure as Code (IaC): Terraform cho phép người dùng mô tả hạ tầng bằng mã nguồn trong các tệp cấu hình (thường sử dụng cú pháp HCL – HashiCorp Configuration Language). Điều này giúp dễ dàng quản lý và thay đổi hạ tầng theo cách có thể kiểm soát và phiên bản hóa.
  • Quản lý đa nền tảng: Terraform hỗ trợ nhiều nhà cung cấp dịch vụ đám mây khác nhau như AWS, Google Cloud, Azure, và các công cụ quản lý hạ tầng khác (ví dụ: VMware, Kubernetes). Điều này giúp Quý Khách có thể sử dụng Terraform để quản lý hạ tầng toàn diện, không bị giới hạn bởi một nền tảng duy nhất.
  • Quản lý tài nguyên: Terraform có thể tự động hóa việc tạo, thay đổi và xóa các tài nguyên hạ tầng như máy chủ ảo, cơ sở dữ liệu, mạng, và các dịch vụ khác, giúp Quý Khách tiết kiệm thời gian và giảm thiểu lỗi do thao tác thủ công.
  • Tính tái sử dụng: Các cấu hình Terraform có thể được tái sử dụng và chia sẻ giữa các dự án hoặc giữa các nhóm, giúp duy trì tính nhất quán và dễ dàng mở rộng quy mô hệ thống.
  • Quản lý trạng thái: Terraform theo dõi trạng thái hiện tại của hạ tầng thông qua tệp trạng thái (state file), cho phép so sánh giữa cấu hình đã khai báo và thực tế hạ tầng để quyết định các thay đổi cần thiết.
  • Tự động hóa công việc: Terraform giúp tự động hóa các tác vụ lặp đi lặp lại như triển khai máy chủ mới, cập nhật cấu hình hạ tầng, hoặc thay đổi các tài nguyên hiện có mà không phải can thiệp thủ công.

1.3. Lợi ích khi dùng Terraform #

  • Giảm thiểu lỗi thủ công: Với Terraform, Quý Khách có thể triển khai và quản lý hạ tầng một cách chính xác và tự động, giúp giảm thiểu sai sót do con người.
  • Kiểm soát và bảo mật: Mã hóa hạ tầng dưới dạng mã giúp Quý Khách dễ dàng theo dõi, kiểm tra và phục hồi cấu hình hạ tầng khi cần.
  • Dễ dàng mở rộng: Terraform giúp việc quản lý tài nguyên trên nhiều nền tảng trở nên dễ dàng và nhất quán, cho phép mở rộng quy mô hệ thống mà không cần phải lo lắng về sự phức tạp của việc tương thích giữa các nền tảng.

2. Cách cấu hình Automation bằng Terraform trên Cloud Gen 4 #

Khi sử dụng Cloud Gen 4, việc tự động hóa quá trình triển khai hạ tầng sẽ giúp Quý Khách tiết kiệm thời gian và tăng cường tính nhất quán. Với Terraform, công cụ mã nguồn mở mạnh mẽ, Quý Khách có thể dễ dàng quản lý và tự động hóa các tài nguyên hạ tầng của mình. Bài viết này vHost sẽ hướng dẫn Quý Khách từng bước để cấu hình Automation bằng Terraform trên Cloud Gen 4 một cách dễ dàng và hiệu quả.

Bước 1. Cài đặt Terraform #

Ở bước đầu tiên, Quý Khách cần cài đặt Teraform trên VPS mà Quý Khách muốn cấu hình, Quý Khách cần thực hiện các lệnh sau để cài đặt:

wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list

sudo apt update && sudo apt install terraform

Sau khi Quý Khách thực hiện xong những lệnh trên, kiểm tra lại phiên bản Teraform bằng lệnh:

terraform -v

Bước 2: Lấy thông tin API Key và Secret Key #

Để có thể lấy thông tin cấu hình API Key, Quý Khách có thể tham khảo bài viết hướng dẫn tại đây.

Bước 3: Tạo tệp cấu hình Terraform #

Để Terraform có thể triển khai các tài nguyên cho Quý Khách, Quý Khách cần tạo các tệp cấu hình để mô tả hạ tầng của Quý Khách. Trong tệp này, Quý Khách sẽ định nghĩa các tài nguyên như máy chủ, cơ sở dữ liệu, mạng và các dịch vụ khác mà Quý Khách muốn triển khai trên Cloud Gen 4 của vHost.

Quý Khách cần thực thiện các bước sau:

Tạo thư mục:

mkdir ~/terraform-cloudstack
cd ~/terraform-cloudstack

Tạo và cấu hình các file cần thiết:

Ở đây vHost sẽ hướng dẫn Quý Khách cách tạo và cấu hình Automation bằng Terraform, giúp Quý Khách dễ dàng triển khai và quản lý các Instances trên Cloud Gen 4. Sau khi Quý Khách tạo thư mục terraform-cloudstack ở bước trên, Quý Khách cần tạo thêm các file ở dưới sau bằng lệnh:

touch cloudstack_instance.tf provider.tf terraform.tfvars variables.tf

Để xóa 1 tệp bất kì Quý Khách dùng lệnh:

rm tepmuonxoa

Sau khi Quý Khách tạo xong những file cần thiết để cấu hình Automation bằng Teraform, bước tiếp theo sẽ hướng dẫn Quý Khách cấu hình chi tiết.

Bước 4: Cấu hình Automation Terraform #

Tại thư mục Quý Khách vừa tạo, Quý Khách cấu hình các file như sau:

nano cloudstack_instance.tf

vHost đã cấu hình giúp Quý Khách nên tại file này Quý Khách không cần thay đổi thông tin.

Thông tin cấu hình như sau:

resource "cloudstack_instance" "instances" {
  for_each         = toset(var.instances_list)
  name             = each.value
  service_offering = var.service_offering
  template         = var.template       # dùng biến, không tham chiếu resource
  network_id       = var.network_id     # dùng biến, không tham chiếu resource
  zone             = var.zone
  expunge          = false
  keypair          = var.keypair #gan ssh key vao vm
 # user_data        = data.http.userdata.response_body
}

# Nếu không cần user_data thì comment luôn block data này
#data "http" "userdata" {
#  url = var.userdata_url
#}

nano provider.tf

Đối với tệp provider.tf này, Quý Khách cần thay đổi các thông số như hướng dẫn ở dưới để có thể kết nối tới API Key của Quý Khách.

Thông tin cấu hình như sau:

terraform {
  required_providers {
    cloudstack = {
      source  = "cloudstack/cloudstack"
      version = "0.4.0"
    }
  }
}

provider "cloudstack" {
  api_url    = "http://IP Cloud Gen 4:8443/client/api"
  api_key    = "api key của Quý Khách"
  secret_key = "secret key của Quý Khách"
}

nano terraform.tfvars

Đối với tệp terraform.tfvars, Quý Khách cần khai báo các thông số cần thiết cho việc khởi tạo Instance. Các thông số này đều đã có sẵn trên hệ thống Cloud Gen 4 của vHost, Quý Khách chỉ cần đăng nhập vào giao diện quản trị Cloud Gen 4 để tra cứu và sử dụng.

  • Zone: name zone Quý Khách muốn sử dụng cho Instances
  • Service_offering: name compute offerings
  • Template: tên template Quý Khách muốn sử dụng
  • Network_id: ID network
  • Instances_list: danh sách tên VM cần tạo
  • Keypair: tên SSH key pairs của Quý Khách

Thông tin cấu hình như sau:

# CloudStack API
api_url    = "http://IP Cloud Gen 4:8443/client/api"
api_key    = "API Key của Quý Khách"
secret_key = "Secret Key của Quý Khách"

# VM config
zone             = "name zone"
service_offering = "Name Compute offerings"
template         = "Ubuntu 20.04"
network_id       = "ID network"
instances_list   = ["vm1"]
keypair          = "name SSH key pairs"

nano variables.tf

Thông tin cấu hình như sau:

# CloudStack API (provider)
variable "api_url" {
  description = "CloudStack API URL (ví dụ: http://HOST:8080/client/api)"
  type        = string
}

variable "api_key" {
  description = "CloudStack API Key"
  type        = string
  sensitive   = true
}

variable "secret_key" {
  description = "CloudStack Secret Key"
  type        = string
  sensitive   = true
}

# VM / Instance config
variable "instances_list" {
  description = "Danh sách tên VM cần tạo"
  type        = list(string)
  default     = ["vm1"]     # bạn có thể thay hoặc bỏ default
}

variable "service_offering" {
  description = "Tên service offering (ví dụ: Small Instance)"
  type        = string
}

variable "template" {
  description = "Tên hoặc ID template có sẵn trong CloudStack"
  type        = string
}

variable "network_id" {
  description = "Network ID (UUID) có sẵn trong CloudStack để gắn VM vào"
  type        = string
}

variable "zone" {
  description = "Zone name hoặc ID trong CloudStack"
  type        = string
}

variable "keypair" {
  description = "SSH keypair name registered in CloudStack"
  type        = string
}

Với thông tin cấu hình này, Quý Khách không cần thay đổi thông tin gì trong cấu hình này hết, vHost đã cấu hình sẵn để khai báo biến các thông tin cần thiết để có thể sử dụng được Automation bằng Terraform.

Sau khi Quý Khách đã cấu hình đầy đủ các thông tin cấu hình trên và đầy đủ các file cần thiết, vHost sẽ hướng dẫn Quý Khách tiếp tục chạy các lệnh tiếp theo để có thể Automation bằng Terraform để quản lý Instances trên hệ thống Cloud Gen 4 của vHost. Quý Khách cần chạy lệnh sau:

Khởi tạo project Terraform bằng lệnh:

terraform init

Kiểm tra các file .tf có hợp lệ hay không bằng lệnh:

terraform validate

Xem trước Terraform sẽ tạo, xóa hoặc thay đổi tài nguyên gì bằng lệnh:

terraform plan

Sau khi Quý Khách kiểm tra Terraform sẽ thay đổi những gì, Quý Khách chạy lệnh tiếp theo để tiến hành thực thi thay đổi (tạo/destroy resource)

terraform apply -auto-approve

Thông báo Terraform đã tạo thành công 1 Instances với template Ubuntu 20.04 trên hạ tầng Cloud Gen 4.

Tiến hành truy cập vào website để kiểm tra, giao diện Instances trước khi Terraform tạo thêm Instances

Giao diện Instances sau khi Terraform đã tạo thêm 1 Instances bằng Automaion sử dụng API Key và Secret Key với tên Instances là vm1 như đã cấu hình

Sau khi quá trình khởi tạo hoàn tất, Quý Khách sẽ nhận được đầy đủ thông tin của Instance mới bao gồm địa chỉ IP (IP Address), gói tài nguyên sử dụng (Compute Offering) và khu vực triển khai (Zone). Với địa chỉ IP này, Quý Khách có thể dễ dàng kết nối vào máy chủ thông qua giao thức SSH. Do trong quá trình tạo, hệ thống đã tự động cấu hình sẵn SSH Key của Quý Khách vào Instance, nên ngay sau khi hoàn tất việc khởi tạo, Quý Khách có thể sử dụng SSH Key của mình để đăng nhập trực tiếp vào máy chủ một cách thuận tiện và an toàn.

Chỉ với vài bước cấu hình đơn giản, Quý Khách đã có thể tự động hoá quá trình triển khai Cloud Gen 4 bằng Terraform trên nền tảng Cloud Gen 4 của vHost. Việc sử dụng Terraform không chỉ giúp tiết kiệm thời gian so với thao tác thủ công trên giao diện quản trị, mà còn mang lại tính nhất quán, dễ quản lý và dễ dàng mở rộng hạ tầng khi cần thiết.

3. Tổng kết #

Việc áp dụng Terraform giúp Quý Khách tự động hoá quá trình triển khai và quản lý Cloud Gen 4 một cách nhanh chóng, chính xác và nhất quán. Đây là bước quan trọng để đưa hạ tầng vào quản lý theo mô hình Infrastructure as Code (IaC), giúp tối ưu vận hành và sẵn sàng mở rộng trong tương lai.

Nếu Quý Khách hàng có thắc mắc gì trong quá trình thực hiện, Quý Khách có thể liên hệ qua các kênh sau:

Nếu Quý Khách có bất kỳ câu hỏi hoặc phản hồi nào, hãy để lại bình luận bên dưới.

Powered by BetterDocs

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top
Day 1: Auto Scaling Cloud Server
Thời gian: 10:00 - 11:15 15/10/2025
Đăng ký ngay
Mừng sinh nhật vHost 15 năm 9/9/2010 - 9/9/2025 ưu đãi lên đến 90%
Giải thưởng Macbook Air M4 đang chờ Quý khách và vô vàn quà tặng khác
Tham gia ngay
Giải thưởng Macbook Air M4 2025
Đang chờ Quý khách nhận khi đăng ký mới dịch vụ
Đăng ký ngay