Bảng cheat địa hình

Terraform là một công cụ để xây dựng, cập nhật và quản lý hạ tầng của bạn bằng cách sử dụng mã. Giống như Github đã trích dẫn

Terraform cho phép bạn tạo, thay đổi và cải thiện cơ sở hạ tầng một cách an toàn và có thể dự đoán được. Đây là một công cụ mã nguồn mở mã hóa các API thành các tệp cấu hình khai báo có thể được chia sẻ giữa các thành viên trong nhóm, được coi là mã, được chỉnh sửa, xem xét và tạo phiên bản

Dịch. Terraform cho phép bạn tạo, thay đổi và nâng cấp cơ sở hạ tầng một cách dễ dàng để có thể xem trước các thay đổi. Nó là một công cụ mã nguồn mở cho phép chuyển đổi các API dưới dạng tệp cấu hình có thể chia sẻ, được biểu diễn dưới dạng mã để xem, chỉnh sửa và sự khác biệt giữa các phiên bản cấu hình

Vì vậy, phần có hại nhất của Terraform là bạn có thể nhập hạ tầng vốn có của mình vào trạng thái cấu hình Terraform, nhờ đó tất cả các thay đổi trong tương lai đều có thể theo dõi được. Thứ có thể theo dõi được ở đây chính là toàn bộ thông tin về môi trường sản xuất của bạn. Trong bài viết hôm nay, mình sẽ đề cập đến vấn đề tại sao phải sử dụng Terraform và làm thế nào để sử dụng nó

Standard is the field

Terraform là bất khả tri trên đám mây nên bạn có thể chạy với Kubernetes Cluster bất kỳ, bất kỳ đám mây bất kỳ nào sử dụng bằng cách sử dụng các Nhà cung cấp được cung cấp sẵn. Một Nhà cung cấp là phần cốt lõi của nền tảng mà Terraform hỗ trợ, có trách nhiệm tương tác với API và cung cấp tài nguyên

Trong bài viết này, mình sử dụng Terraform v0. 13. 4 trên tel4vn Server 20. 04. Để có thể theo dõi bài viết, bạn đọc hãy chuẩn bị môi trường như sau

  • Tải xuống và cài đặt Minikube v1. 14. 0 theo hướng dẫn tài liệu sau. Tài liệu minikube
  • Tải xuống và cài đặt Helm v3. 4. 0-rc. 1 the following direction. Tài liệu lái xe
  • Tải xuống và cài đặt kubectl để thao tác với Kubernetes Cluster. tài liệu kubectl
  • Tải xuống và cài đặt Terraform v0. 13. 4  tại đây. Giải nén rồi di chuyển vào /usr/local/bin/terraform

Sơ lược về các câu lệnh trong Terraform

Để có thể xây dựng được với Terraform, bạn phải tạo mô-đun. Đây sẽ là thư mục bao gồm các tệp cấu hình để cung cấp thông tin cho việc thực thi. File config của Terraform có đuôi. tf nên trước hết bạn cần tạo tệp chính. tf

tel4vn@devops:~/terraform_example$ touch main.tf

Dưới đây là một số câu lệnh Terraform thường sử dụng mà bạn đọc cần biết

  • terraform init 

    Khởi tạo một thư mục làm việc với Terraform. Câu lệnh này phải được chạy trong cùng thư mục với các tệp. tf nếu không thì sẽ không có gì diễn ra khi thực thi

  • terraform validate

    Kiểm tra cú pháp đã cài đặt trong tệp. tf

  • terraform plan

    Đọc tệp cấu hình và hiển thị những thay đổi nếu thực thi

  • terraform apply

    áp dụng và thực thi các cài đặt trong tệp cấu hình

  • terraform refresh

    Cập nhật trạng thái hiện tại của các tài nguyên

  • terraform destroy

    Xoá các hạ tầng được quản lý bởi Terraform mà lưu trong file terraform. tfstate. Câu lệnh này sẽ xóa vĩnh viễn bất kỳ đối tượng, tài nguyên nào được tạo và chỉ định trong tệp terraform. tfstate

Khởi tạo Minikube Cluster bằng cách sử dụng Minikube

Trước khi bắt đầu với Terraform, bạn phải tạo một Minikube Cluster

tel4vn@devops: minikube start

Sau khi chạy câu lệnh trên, kiểm tra lại với kubectl

________số 8

Cluster has up, vậy tiếp theo, bạn cần thêm cài đặt vào tệp main. tf. Trước hết, bạn cần một nhà cung cấp. Trong bài viết này, nhà cung cấp của bạn là kubernetes

provider "kubernetes" {
  config_context_cluster   = "minikube"
}

Theo cú pháp trên, bạn đã báo cáo với Terraform rằng Cluster mà bạn đang chạy là Minikube Cluster

Next next is must only the resource block. Đó là các đoạn chỉ định một hoặc nhiều đối tượng trong hạ tầng của bạn. cụ thể. mạng ảo, phiên bản máy tính hoặc Bản ghi DNS, …

Thực hiện thêm một không gian tên Kubernetes vào trong cụm

terraform init 
0

Tiếp theo, thực hiện lệnh terraform init để kiểm tra phiên bản và khởi động Terraform trong thư mục hiện tại

terraform init 
1

Tiếp tục thực hiện Terraform plan để kiểm tra những thay đổi có thể xảy ra

terraform init 
2

Sau khi xem xét những thay đổi đó, hãy thực hiện áp dụng những thay đổi đó

terraform init 
3

Cuối cùng, xác nhận lại các thay đổi đã áp dụng hoặc chưa sử dụng kubectl get ns

terraform init 
4

Use Helm chart with Terraform

Từ phần trên, bạn đã biết cách viết file config cho Terraform và chạy nó. Tiếp theo sẽ được chạy bằng biểu đồ Helm, sử dụng helm create để tạo biểu đồ

terraform init 
5

Vì vậy, bạn cần chỉ định một nhà cung cấp để có thể làm việc với biểu đồ Helm và chỉ định tên Kubernetes Cluster để Helm biết nơi nó sẽ cài đặt các biểu đồ. Thực hiện thêm một khối mới trong chính. tf as after

terraform init 
6

Sau đó, cần phải thêm tài nguyên Helm để biểu đồ này có thể được cài đặt và theo dõi bởi Terraform của bạn bằng cách sử dụng tài nguyên mà nhà cung cấp Helm cung cấp đó là helm _release. mình đặt tên tài nguyên này là cục bộ. You read can set any any name

terraform init 
7

Sau khi cập nhật thêm cấu hình trong chính. tf, bạn chạy lại phần khởi động để cập nhật trạng thái đã thay đổi, bao gồm cả nhà cung cấp dịch vụ tải mới

terraform init 
8

Sự thay đổi thống kê sẽ được thực hiện

terraform init 
9

Sau khi xem xét thay đổi, hãy cập nhật các thay đổi ngay lập tức bằng cách sử dụng –tự động phê duyệt

terraform validate
0

Kiểm tra lại biểu đồ đã được thực hiện khai thác bằng cách sử dụng kubectl

terraform validate
1

Bạn có thể thấy, biểu đồ đã thực sự được triển khai Terraform và trong thư mục cũng đồng thời có trạng thái sao lưu tệp được tạo ra

terraform validate
2

Như bạn đã thấy, Terraform cung cấp tính năng sao lưu cho trạng thái của các tầng hạ tầng. Một bản sao lưu trạng thái hạ tầng gần nhất sẽ được tạo ra mỗi khi một trạng thái mới được khởi động. Đồng thời cho phép người dùng có thể quản lý các phiên bản trạng thái

Phục hồi phiên bản trạng thái trước đó

Như đã nói trước đó, khi bạn cập nhật các cài đặt mới sử dụng Terraform, trạng thái sao lưu tệp sẽ được tạo ra và cập nhật liên tục mình phiên bản mới nhất. Vì một lý do nào đó, bạn phải quay lại phiên bản trạng thái hạ tầng trước đó. cụ thể. phiên bản mới có xung đột dẫn đến bất kỳ ứng dụng nào không hoạt động đúng

Trước hết, hãy chạy lệnh terraform refresh để xem sự khác nhau giữa trạng thái hiện tại và cụm

terraform validate
3

Sau đó, để khôi phục lại phiên bản cũ, có 2 cách

  • Ghi bảo vệ trạng thái tệp hiện tại bằng trạng thái sao lưu tệp
  • Nhận xét những khối gây ra sự thay đổi giữa trạng thái hiện tại với trạng thái trước trong tệp. tf

Trong bài viết này, mình sẽ thực hiện bình luận những thay đổi, cụ thể là block đã triển khai helm chart

terraform validate
4

Sau khi bắt đầu, hãy chạy lại terraform apply để khôi phục

terraform validate
5

Xoá trạng thái phát triển được khai thác bởi Terraform

Để xóa trạng thái và tất cả các đối tượng, tài nguyên đã được khởi động và theo dõi bởi Terraform, ta sử dụng câu lệnh terraform destroy

terraform validate
6

Bạn có thể kiểm tra lại xem các đối tượng đã thực sự bị xóa đi bằng cách sử dụng kubectl

terraform validate
7

Lời kết

Vừa rồi mình đã chia sẻ cho mọi người về Terraform và 2 ví dụ sử dụng với Minikube Cluster và Helm. Bất kỳ câu hỏi nào trong quá trình theo dõi bài đọc, bạn có thể bình luận bên dưới để mình hỗ trợ. Cảm ơn bạn đã theo dõi