Hướng dẫn cài đặt Terraform và khởi chạy 1 kịch bản | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

If possible, please support us by clicking on the advertisements.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

Hướng dẫn cài đặt Terraform và khởi chạy 1 kịch bản

tampm

Búa Gỗ
Terraform là gì ?
Terraform là một công cụ giúp tự động hóa triển khai các kịch bản của bạn liên kết với Google (GCP), Amazon (AWS), Microsoft (Azure)…

Đại khái là giúp bạn nhúng các code của mình để liên kết với cloud và chạy nó, hôm nay mình sẽ demo thử 1 kịch bản giúp bạn hiểu rõ về vấn đề này. thì đầu tiên để nhúng đc code của bạn thì bạn cần phải hiểu các options của 1 cloud.

Các thành phần chính :
  • Mạng ( network )
  • Tính toán ( calculator )
  • Lưu trữ ( storage )
  • Tên miền, hộp thư mail ( DNS )
  • Giám sát
Terraform được viết bằng ngôn ngữ Go, đc khởi xướng bởi Hashicorp.

Chuẩn bị
Disable selinux : xem hướng dẫn tại đây

Tắt firewall : xem hướng dẫn tại đây

Update các bản mới đầy đủ.
Mã:
yum update & upgrade -y

Cài đặt gói package cần thiết
Mã:
yum install nano unzip -y

Cài Đặt Terraform
ok đầu tiên thì ta kiểm tra xem biến môi trường của chúng ta ntn nhé !

Biến môi trường là các thư mục mặc định mà mỗi lần chạy các lệnh tương ứng thì shell sẽ tìm đến thư mục và gọi nó ra. thế thôi

Mã:
echo $PATH

sẽ nhận được kết quả dạng như này.

Mã:
wget https://releases.hashicorp.com/terraform/0.11.7/terraform_0.11.7_linux_amd64.zip

sau khi download về thì giải nén nó ra thư mục /usr/bin/

Mã:
unzip terraform_0.11.7_linux_amd64.zip -d /usr/bin/

Ok vậy là đc rồi

Test bằng cách check version của terraform bằng lệnh

Mã:
terraform -v

Dựng kịch bản
Theo mình thì viết kịch bản này mặc dùng dùng code của Hashicorp nhưng mình thấy nó tương tự như JSON vậy. dạng khai báo các giá trị để có thể apply nó hoặc destroy nó !

Terraform cung cấp công cụ đó nên bạn hoàn toàn yên tâm nhé !

Mình củng có chuẩn bị sẵn 1 kịch bản đơn giản giúp bạn launch 1 instance

Mã:
provider "aws" {
        access_key = "XXXXXXXXXXXXXXXX"
        secret_key = "XXXXXXXXXXXXXXXXXXXXXX"
        region = "ap-southeast-1"
}

resource "aws_instance" "example" {
        ami = "ami-a59b49c6"
        instance_type = "t2.micro"
        key_name = "mykey"
        security_groups= ["sample-sg"]
        tags {
         Name = "terraform-instance"
        }
}

OK để mình giải thích chút nhé ! đại khái là access key và secret key bạn sẽ được cấp cho mỗi tài khoản để có thể thông qua đó mà nhúng code của bạn tạo ra nhiều instance

như kịch bản ở trên giúp bạn tạo ra 1 instance mới với tên là terraform-instance

Access keysecret key thì có thể tìm ở đây

Để đọc thêm về nó thì tại đây

OK để chạy kịch bản thì đầu tiên ta gần chạy init để tạo môi trường cho terraform sau đó là dùng lệnh plan, nên nhớ để chạy cho kịch bản nào thì pwd phải thực thi trên đúng file chứa kịch bản đó.

Ở lệnh plan sẽ show cho ta thấy đc kế hoạch thực thi lệnh bao gồm những options nào ta đã khai báo trong file *.tf

terraform-huong-dan-5-xsolution.vn.jpg


sau đó thì ta apply để tiến hành chạy nó

terraform-huong-dan-6-xsolution.vn.jpg


Kết quả nhận được là 1 máy ảo đc tạo ra và khởi động.

terraform-huong-dan-4.jpg


Kết luận

Vậy terraform giúp bạn giải quyết việc gì. dĩ nhiên để triển khai 1 hệ thống phức tạp. không thể nào ta lại thao tác với GUI đc. nên mình dựng ra hàng loạt kịch bản ngoài ra mình có thể nhúng bash shell trực tiếp bằng cách chèn thêm options user-data vào các trường . Vậy hàng loạt vấn đề đã được giải quyết phải không ? cụ thể là khi có 1 chiến dịch nào đó mà mình cần triển khai trên diện rộng. việc đơn giản hơn là bạn cho apply chạy là xong !

và theo mình cloud mặc dù chi phí đắt đỏ thật. nhưng nó quá tiện đi ! chi phí để bảo dưỡng hệ thống vật lý hoặc đại khái là giảm thiểu tính ảnh hưởng bởi con người đi. thì nên dùng cloud !

và nhớ đừng có để nhầm access key với secret key cho ai thấy nhé ! rất phiền đấy .

 


Top