View Categories

Hướng dẫn cấu hình Automation OpenTofu trên Cloud Gen 4 tại vHost

7 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 OpenTofu, giúp việc triển khai và quản lý các Instances trên Cloud Gen 4 trở nên đơn giản và hiệu quả hơn. Trước tiên, để sử dụng được tính năng này, Quý Khách cần chuẩn bị API KeySecret Key từ tài khoản Cloud Gen 4 trên vHost. Quý khách có thể tham khảo hướng dẫn tạo và lấy API Key tại Cloud Gen 4 của vHost tại đây.

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

1. Opentofu #

1.1. Giới thiệu về Opentofu #

OpenTofu là một công cụ mã nguồn mở, được phát triển như một nhánh từ Teraform sau khi Terraform thay đổi giấy phép. Tương tự như Terraform, OpenTofu được sử dụng để tự động hóa việc triển khai và quản lý hạ tầng dưới dạng mã (Infrastructure as Code – IaC).

Người dùng có thể định nghĩa và triển khai hạ tầng trên nhiều nền tảng khác nhau thông qua các tệp cấu hình, giúp cho việc quản lý hạ tầng trở nên dễ dàng, đồng bộ và có thể kiểm soát.

1.2. Các tính năng của OpenTofu #

Infrastructure as Code (IaC): Cho phép mô tả hạ tầng bằng mã trong các tệp cấu hình với cú pháp HCL (HashiCorp Configuration Language), dễ dàng kiểm soát, lưu trữ và phiên bản hóa.

Quản lý đa nền tảng: OpenTofu hỗ trợ nhiều nhà cung cấp dịch vụ (providers), trong đó có vHost Cloud, giúp triển khai hạ tầng trên các hệ thống đám mây hoặc môi trường khác nhau.

Tự động hóa tài nguyên: Người dùng có thể tạo, thay đổi hoặc hủy bỏ tài nguyên (máy chủ, mạng, firewall, ổ đĩa…) một cách tự động mà không cần thao tác thủ công.

Quản lý trạng thái: OpenTofu lưu trữ trạng thái của hạ tầng trong tệp state, so sánh sự khác biệt giữa mô tả cấu hình và thực tế, từ đó áp dụng các thay đổi cần thiết.

1.3 Sự khác biệt giữa Terraform và OpenTofu #

Bảng dưới đây tóm tắt sự khác biệt giữa OpenTofu và Terraform.

Tiêu chíTerraformOpenTofu
Nguồn gốcDo HashiCorp phát triển, ra mắt từ 2014Đây là fork của Terraform, do Linux Foundation và cộng đồng phát triển (2023)
Giấy phépBSL (Business Source License) không còn mở hoàn toàn.Giữ mã nguồn mở 100% theo MPL (Mozilla Public License)
Cộng đồngChủ yếu do HashiCorp kiểm soát, cộng đồng đóng góp hạn chế.Do cộng đồng dẫn dắt, mọi người có thể tham gia phát triển và định đướng.
Tính năng nổi bậtiaC, quản lý đa nền tảng, state management….nhưng chậm bổ xung tính năng mới.Tích hợp nhanh các yêu cầu cộng đồng
Hệ sinh tháiRất lớn, nhiều tài liệu, nhiều provider lâu đờiĐang phát triển, kế thừa provider từ Terraform, cộng đồng bổ sung nhanh
Định hướng phát triểnỔn định, phù hợp cho doanh nghiệp lớn, nhưng phụ thuộc vào HashiCorpMinh bạch, ưu tiên phản hồi người dùng, hướng mở và linh hoạt.
Khả năng tương thíchNền tảng gốc, ổn định, nhiều provider chính thứcTương thích ngược với Terraform, có thể dùng lại hầu hết cầu hình Terraform.

2. Hướng dẫn cài đặt Opentofu trên Ubuntu 22.4 #

a. Cài đặt Screen để lưu tiến trình chạy nền

wget https://vhost.vn/tmp/screenrc
mv screenrc .screenrc
screen -a

b. Cập nhật hệ thống và cài các gói cần thiết

sudo apt-get update<br>sudo apt-get install -y apt-transport-https ca-certificates curl gnupg

c. Tạo thư mục lưu trữ GPG keys

sudo install -m 0755 -d /etc/apt/keyrings

d. Tải và thêm GPG key của OpenTofu

curl -fsSL https://packages.opentofu.org/opentofu/tofu/gpgkey | sudo gpg --dearmor -o /etc/apt/keyrings/opentofu.gpg<br>sudo chmod a+r /etc/apt/keyrings/opentofu.gpg

e. Thêm repository của OpenTofu vào APT source list

echo "deb [signed-by=/etc/apt/keyrings/opentofu.gpg] https://packages.opentofu.org/opentofu/tofu/any/ any main" | sudo tee /etc/apt/sources.list.d/opentofu.list<br>echo "deb-src [signed-by=/etc/apt/keyrings/opentofu.gpg] https://packages.opentofu.org/opentofu/tofu/any/ any main" | sudo tee -a /etc/apt/sources.list.d/opentofu.list

f. Cài đặt OpenTofu

sudo apt-get update<br>sudo apt-get install -y tofu

g. Kiểm tra phiên bản sau khi cài đặt

tofu --version

3. Hướng dẫn kết nối đến Cloud Gen 4 #

Đầu tiên Quý Khách phải có Api và Secret Key trên tài khoản Cloud Gen 4 của vHost, Quý Khách có thể tham khảo bài viết hướng dẫn tại đây.

Để OpenTofu 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.

Tạo thư mục để quản lí các file cấu hình:

mkdir ~/opentofu-cloudstack 
cd ~/opentofu-cloudstack

Tạo file main.tf dùng để kết nối api với Cloud gen 4 của vHost, dùng để định nghĩa nhà cung cấp dịch vụ, cách xác thực và cho phép quản lý hạ tầng trên Cloud Gen 4 bằng mã.

Thông tin sau:

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

provider "cloudstack" {
      api_url = var.api_url
      api_key = var.api_key
      secret_key = var.secret_key
}

Ý nghĩa: OpenTofu sẽ tải provider CloudStack phiên bản 0.5.0 để có thể giao tiếp với API Cloud Gen 4.

Tiếp đến khai báo giá trị cho các biến trong file terraform.tfvars

api_url = "http://<IP của Cloud Gen 4>:8080/client/api"
api_key = "pEEFOYF3R6y4…"
secret_key = "vQIYfblaGYyKQ…"
zone = "vietnam"

vm_name = "<Tên VM>"
service_offering = "<Chọn cấu hình>"
template_name = "Ubuntu 24.04"
network_id = "<Id network>"
vm_password = "<Password của VM sau khi tạo>"

Tạo file vm.tf để định nghĩa resource trong opentofu để tạo một máy ảo VM trên Cloud Gen 4 tại vHost.

resource "cloudstack_instance" "vm1" {
    name = var.vm_name
    service_offering = var.service_offering
    template = var.template_name
    network_id = var.network_id
    zone = var.zone
    expunge = true

    user_data = base64encode(<<-EOT
     #!/bin/bash
     echo 'root:${var.vm_password}' | chpasswd
    EOT
    )
}

Tạo file varibles.tf

variable "api_url" {
description = "CloudStack API endpoint"
type = string
}

variable "api_key" {
description = "CloudStack API key"
type = string
}

variable "secret_key" {
description = "CloudStack Secret key"
type = string
}

variable "zone" {
type = string
description = "CloudStack Zone name"
}

variable "service_offering" {
type = string
description = "Instance size"
}

variable "template_name" {
type = string
description = "Template of the VM:"
}

variable "vm_name" {
type = string
description = "Name of the VM"
}

variable "network_id" {
description = "Network ID to attach the VM"
type = string
}

variable "vm_password" {
description = "Root password for VM"
type = string
sensitive = true
}

variable "vm_id" {
description = "ID của VM cần quản lý/xoá"
type = string
default = ""
}

Tạo file Output.tf

output "vm_id" {
value = cloudstack_instance.vm1.id
}

output "vm_name" {
value = cloudstack_instance.vm1.name
}

output "vm_password" {
value = var.vm_password
sensitive = true
}

output "imported_vm_id" {
value = cloudstack_instance.vm1.id
}

output "imported_vm_name" {
value = cloudstack_instance.vm1.name
}

Chạy thực hiện:

tofu init
tofu plan 
tofu validate
tofu apply 
tofu apply -auto-approve

Xem cấu hình VM đã tạo:

Truy cập vào VM

Cách Xóa 1 VM:

tofu destroy -target=cloudstack_instance.vm1 -auto-approve

4. Tổng kết #

Việc áp dụng OpenTofu 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.

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
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
Dẹp bỏ nỗi lo hệ thống và tập trung kinh doanh
Managed VPS
Dùng thử ngay
Get a Shocking Discount!
Get 85% OFF on all our selected products
Check it out