Cách sử dụng Giao diện dòng lệnh Terraform (CLI) trên Ubuntu

theanh

Administrator
Nhân viên
Terraform là một khuôn khổ để xây dựng và cấu hình cơ sở hạ tầng dưới dạng mã, với giao diện dòng lệnh và ngôn ngữ DSL. Terraform có thể quản lý các nhà cung cấp dịch vụ hiện có và phổ biến cũng như các giải pháp nội bộ tùy chỉnh để xây dựng và cấu hình toàn bộ trung tâm dữ liệu phân tán.

Giao diện dòng lệnh Terraform (CLI) cho phép bạn sử dụng Terraform mà không cần phải viết bất kỳ mã hoặc tệp cấu hình nào. Đây là cách lý tưởng để tạo nguyên mẫu thay đổi cơ sở hạ tầng với nhóm của bạn trước khi viết mã, triển khai cấu hình cục bộ trên máy của bạn hoặc đưa chúng vào sản xuất. CLI được xây dựng dựa trên định dạng tệp terraformspec được tạo ra cho mục đích này bởi các bên thứ ba như HashiCorp Nomad CLI Toolkit.

Bộ công cụ CLI triển khai JavaScript DSL để xác định cơ sở hạ tầng và sử dụng cùng một định dạng cấu hình trong cả Terraform và CLI. Bộ công cụ CLI cũng cung cấp các lệnh để tạo mẫu cơ sở hạ tầng, kết hợp các thành phần cơ sở hạ tầng thành các giải pháp hoàn chỉnh và quản lý các thay đổi. Toàn bộ quy trình làm việc của Terraform được điều khiển bởi các hàm không trạng thái được xác định trong mã và được Terraform thực thi mỗi khi bạn thực hiện thay đổi. Điều này cho phép bạn nghĩ về cơ sở hạ tầng của mình như một thiết kế duy nhất có thể dễ dàng sửa đổi khi chạy mà không cần tải lại cấu hình hoặc sửa đổi cơ sở dữ liệu mã của bạn.

Nhiều chuyên gia CNTT và công ty sử dụng giao diện dòng lệnh Terraform để quản lý và thậm chí tạo cơ sở hạ tầng mới hoặc cơ sở hạ tầng đám mây mới. Giao diện dòng lệnh Terraform có thể cung cấp phương pháp mạnh mẽ hơn để tự động hóa các thay đổi mất quá nhiều thời gian để thực hiện thủ công. Đây là một công cụ mạnh mẽ để quản lý cơ sở hạ tầng.

Thật dễ hiểu tại sao Terraform lại là một trong những giải pháp cung cấp đám mây nguồn mở phổ biến nhất trên thế giới. Đây là công cụ được những người dùng Linux như bạn sử dụng!

Bên trong, bạn sẽ tìm thấy các giải thích và ví dụ đầy đủ về các lệnh Terraform CLI phổ biến nhất đã được lựa chọn đặc biệt để cung cấp cho bạn trải nghiệm thực tế với các tính năng mạnh mẽ nhất của Terraform.

Điều kiện tiên quyết​

  • Để theo dõi bài viết này, bạn cần có:
  • Một số kiến thức cơ bản về các tính năng và chức năng của Terraform.
  • Một máy Linux. Bản demo này sử dụng Ubuntu 20.04 LTS, nhưng bất kỳ bản phân phối Linux nào cũng có thể chạy được.
  • Terraform và docker đã được cài đặt trên máy.

Sao chép Mã chính​

Bây giờ bạn đã đáp ứng các điều kiện tiên quyết, bạn đã sẵn sàng bắt đầu sao chép mã chính để sử dụng Terraform CLI.

1. Chạy lệnh apt install bên dưới để cài đặt git trên hệ thống của bạn. Git là một hệ thống kiểm soát phiên bản phân tán mã nguồn mở được thiết kế để xử lý mọi thứ từ các dự án nhỏ đến rất lớn với tốc độ và hiệu quả. Bạn sẽ sử dụng git để sao chép mẫu dự án giao diện dòng lệnh Terraform từ github.com. Sau đó, bạn sẽ kiểm tra phiên bản chính xác của dòng lệnh Terraform cho bản demo này.
Mã:
sudo apt install git -y


2. Chạy lệnh git clone bên dưới để sao chép mẫu dự án dòng lệnh Terraform vào thư mục hiện tại của bạn.
Mã:
git clone https://github.com/howtoforge-com/terraform-cli.git


3. Di chuyển vào thư mục terraform-cli mới sao chép và mở tệp main.tf bằng trình soạn thảo văn bản yêu thích của bạn (vim, emacs, nano, v.v.). Tệp main.tf là điểm vào của dự án của bạn đến giao diện dòng lệnh Terraform (Cli). Khi bạn chạy lệnh terraform, nó sử dụng tệp main.tf làm đầu vào cho hướng dẫn về cách xây dựng cơ sở hạ tầng của bạn.
Mã:
cd terraform-cli && sudo nano main.tf
Bạn sẽ nhận được đầu ra sau.


  • Phần terraform { } của tệp main.tf không làm gì khác ngoài việc đặt nhà cung cấp docker làm required_provider. Để Terraform có thể quản lý cơ sở hạ tầng Docker của bạn, bạn phải cấu hình nhà cung cấp docker.

  • Khối mã tài nguyên "docker_image" "nginx" { minh họa cách sử dụng terraform CLI bằng cách tạo một tài nguyên mới có tên là docker_image. Dòng tiếp theo sử dụng docker-image để tạo một tài nguyên có tên là nginx. Bạn có thể suy ra rằng tài nguyên này sẽ được sử dụng để quản lý vùng chứa Docker của bạn. Dòng tiếp theo đặt tên cho hình ảnh docker của bạn là nginx:latest. keep_locally = false ngăn hình ảnh được lưu trữ cục bộ trên máy của bạn và là một ý tưởng hay để ngăn chặn các lần tải xuống trùng lặp.

  • Tài nguyên "docker_container" "nginx" { minh họa cách sử dụng terraform CLI bằng cách tạo một tài nguyên mới có tên là docker_container. Dòng tiếp theo sử dụng docker_container để tạo một tài nguyên có tên là nginx. Tài nguyên này sẽ được sử dụng để quản lý ánh xạ cổng của vùng chứa Docker của bạn. Dòng tiếp theo đặt tên cho vùng chứa docker của bạn là hướng dẫn và cuối cùng, minh họa cách ánh xạ cổng 8000 và cổng 80 trên máy chủ của bạn trên vùng chứa docker bằng khối ports.

Sử dụng Giao diện dòng lệnh Terraform (CLI) để xây dựng cơ sở hạ tầng đầu tiên của bạn​

Bây giờ bạn đã sao chép mẫu dự án Terraform, bạn có thể xây dựng cơ sở hạ tầng đầu tiên của mình. Bạn sẽ sử dụng Terraform CLI để xây dựng cơ sở hạ tầng bằng tệp main.tf của dự án. Bạn sẽ tạo một vùng chứa docker và ánh xạ một cổng từ máy chủ của mình tới vùng chứa docker.

1. Trước tiên, hãy chạy lệnh terraform init để khởi tạo thư mục làm việc của bạn. Lệnh terraform init khởi tạo thư mục làm việc của bạn và tải xuống bất kỳ plugin nào cần thiết để Terraform quản lý cơ sở hạ tầng của bạn. Thư mục làm việc là thư mục mà bạn sẽ sử dụng lệnh terraform để quản lý cơ sở hạ tầng của mình. Sau khi khởi tạo, thư mục này chứa tệp main.tf và có thể chứa nhiều tệp hỗ trợ.
Mã:
terraform init
Sau khi chạy thành công lệnh terraform init, bạn sẽ nhận được kết quả sau.



2. Tiếp theo, chạy lệnh terraform fmt để tự động định dạng tệp main.tf của bạn để dễ đọc và nhất quán.Lệnh terraform fmt sẽ định dạng lại tệp main.tf của bạn để dễ đọc và nhất quán. Đây là một thực hành tốt cần tuân theo vì nó sẽ giúp bạn và những người khác dễ đọc tệp của bạn hơn.
Mã:
terraform fmt
Nếu lệnh terraform fmt sửa đổi các tệp main.tf của bạn, nó sẽ in ra tên của tệp đã định dạng lại. Trong bản demo này, đầu ra để trống vì tệp main.tf đã được định dạng theo ý thích của Terraform, như được hiển thị bên dưới.



3. Chạy lệnh terraform validate để đảm bảo rằng cơ sở hạ tầng của bạn sẽ được xây dựng như mong muốn. Lệnh terraform validate là lệnh kiểm tra an toàn để xác minh rằng cơ sở hạ tầng của bạn có thể được xây dựng theo đúng ý định.
Mã:
terraform validate
Nếu không có lỗi, bạn sẽ nhận được kết quả tương tự như sau, cho biết mọi thứ đã sẵn sàng để xây dựng cơ sở hạ tầng đầu tiên của bạn.



4. Chạy lệnh terraform plan để xem Terraform sẽ làm gì để xây dựng cơ sở hạ tầng. Lệnh terraform plan là bản xem trước về những gì Terraform dự định xây dựng và không giống với lệnh terraform apply.
Mã:
terraform plan
Lệnh terraform plan xuất ra cấu trúc sau, cho thấy lệnh này sẽ tạo một phiên bản của tài nguyên docker_container có tên là nginx và một tài nguyên docker_image có tên là tutorial.



5. Chạy lệnh terraform apply để áp dụng các thay đổi mà bạn đã xem trước bằng lệnh terraform plan. Lệnh terraform apply sẽ xây dựng cơ sở hạ tầng của bạn. Lệnh terraform apply sẽ tạo tất cả các tài nguyên được mô tả trong tệp cấu hình Terraform main.tf của bạn.

Lệnh này sẽ sử dụng lại việc đánh giá các biến, ràng buộc và ánh xạ từ lệnh terraform plan để tạo ra kế hoạch hiệu quả nhất có thể. Bất kỳ tùy chọn bổ sung nào được chỉ định trên dòng lệnh với terraform apply sẽ được sử dụng khi chạy lệnh apply. Nhập yes và nhấn Enter khi được yêu cầu Nhập giá trị.
Mã:
terraform apply


Sau khi lệnh terraform apply thành công, bạn sẽ thấy một thông báo cho biết cơ sở hạ tầng của bạn đã được xây dựng thành công, như hiển thị bên dưới. Khi điều này xảy ra, điều đó có nghĩa là cơ sở hạ tầng của bạn đã được xây dựng theo đúng dự định và được cập nhật với tệp cấu hình của bạn.



6. Chạy lệnh ls để liệt kê tất cả các tệp trong thư mục làm việc của bạn. Bạn sẽ thấy một tệp mới có tên terraform.tfstate như hiển thị bên dưới. Một tệp có tên này được tạo để theo dõi các thay đổi đối với cơ sở hạ tầng của bạn. Lệnh terraform plan lưu trữ các thay đổi sẽ được áp dụng khi chạy terraform apply trong một tệp trung gian có tên .tfstate. Tệp trạng thái chứa trạng thái đầy đủ của cơ sở hạ tầng theo cách Terraform nhìn thấy. Tệp này là bắt buộc để áp dụng bất kỳ cấu hình nào và phải được chuyển khi thực hiện các thay đổi, ngay cả khi mục tiêu nằm trong cùng một nhà cung cấp.
Mã:
ls


7. Quá trình xây dựng hiện đã kết thúc. Chạy lệnh terraform destroy để phá hủy cơ sở hạ tầng mà bạn vừa xây dựng. Nhập và nhấn Enter khi được yêu cầu Nhập Giá trị.Lệnh terraform destroy sẽ xóa tất cả các tài nguyên được tạo bởi bản demo này. Lệnh terraform destroy sẽ xóa tất cả các tài nguyên được mô tả trong tệp cấu hình Terraform main.tf của bạn. Sau khi các tài nguyên bị hủy, chúng không thể được khôi phục.

Bạn nên xóa các tài nguyên không sử dụng để giữ cấu hình cho một môi trường trong tầm kiểm soát. Không phải là che đậy các lỗi - mà là ngăn ngừa lỗi bằng cách ngăn chặn sự tích tụ của các tài nguyên không sử dụng.
Mã:
terraform destroy

Kết luận​

Trong hướng dẫn này, bạn đã học cách sử dụng các khái niệm Terraform phổ biến nhất được trình bày trong một ví dụ để xây dựng cơ sở hạ tầng đầu tiên của mình. Bạn đã học cách sử dụng Terraform CLI để xây dựng cơ sở hạ tầng bằng tệp main.tf của dự án. CLI có thể được sử dụng để lập kế hoạch, áp dụng và phá hủy cơ sở hạ tầng của bạn.

Bây giờ bạn có các công cụ để xây dựng cơ sở hạ tầng của riêng mình. Bạn có thể quản lý nhiều loại tài nguyên một cách dễ dàng, nhờ ngôn ngữ cấu hình toàn diện và biểu cảm của Terraform.

Bạn có thể tận dụng kiến thức mới tìm thấy của mình về quản lý cơ sở hạ tầng, vốn đã được sử dụng cho các container Docker, Kubernetes và OpenStack, để mang lại hiệu quả và tính nhất quán hơn cho hoạt động cơ sở hạ tầng dưới dạng mã của bạn.
 
Back
Bên trên