Terraform Registry là nơi mà người ta có thể tìm thấy nhiều nhà cung cấp và mô-đun khác nhau (cấu hình Terraform có thể tái sử dụng) và sử dụng chúng với Terraform. Nó bao gồm những người đóng góp như HashiCorp, các nhà cung cấp bên thứ ba và cộng đồng Terraform. Sổ đăng ký này nhằm mục đích cung cấp các plugin để xử lý nhiều API cơ sở hạ tầng khác nhau, cung cấp các mô-đun hiện có để nhanh chóng xây dựng các thành phần cơ sở hạ tầng thường dùng và trình bày các cách để phát triển mã Terraform được viết hiệu quả.
Các mô-đun được xuất bản trong Terraform Registry có thể được tham chiếu trong mã Terraform thông thường bằng cú pháp:
Ví dụ: hãy xem cách sử dụng mô-đun bên dưới từ sổ đăng ký Terraform:
Ví dụ trên sử dụng mô-đun VPC từ sổ đăng ký Terraform cho AWS. Chạy lệnh 'terraform init' sẽ truy xuất và lưu trữ các mô-đun được tham chiếu bởi mã Terraform.
Terraform Registry có điều khoản sử dụng cả mô-đun công khai và riêng tư. Terraform Registry công khai cho phép xuất bản và sử dụng các nhà cung cấp và mô-đun một cách công khai. Các mô-đun riêng tư có thể được xuất bản bằng cách sử dụng sổ đăng ký riêng tư.
Ngoài ra còn có các ví dụ minh họa cách sử dụng mô-đun, ví dụ một mô-đun để tạo phiên bản EC2 được sử dụng trong hướng dẫn này. Trước khi đi sâu vào ví dụ này, trước tiên chúng ta hãy xem bên trong mã nguồn của mô-đun này. Mở mã nguồn url. Trên trang github, có một số thư mục và một số tệp cho mô-đun này. Hiện tại chúng ta chỉ tập trung vào ba tệp terraform: main.tf, outputs.tf và variables.tf. Tệp main.tf chứa nhiều dòng mô tả một phiên bản EC2. Tương tự như vậy, variables.tf và outputs.tf có một số khai báo giá trị đầu vào và đầu ra.
Bước 1. Mở trang web Terraform Registry và tìm kiếm module aws cho EC2:
Bước 2. Nhấp vào kết quả tìm kiếm ‘terraform-aws-modules/ec2-instance’ như hiển thị ở trên. Mô-đun này được sử dụng để khởi chạy phiên bản AWS EC2 trong trường hợp của chúng tôi.
Bây giờ, hãy xem tệp cấu hình bên dưới mà chúng tôi đã tạo cục bộ trên hệ thống của mình để làm việc với mô-đun này. Trong tệp này, chúng tôi đã bao gồm mô-đun trên bằng cách sử dụng đối số 'nguồn'. Chúng tôi chỉ sử dụng một vài khai báo từ mô-đun thực tế như được mô tả ở đây:
Trong cấu hình này, có hai đối số: source và version.
Bây giờ hãy chạy 'terraform plan' hoặc sử dụng lệnh 'terraform apply' để trực tiếp đưa các thay đổi vào hoạt động:
Nhập 'yes' khi được nhắc. Thao tác này sẽ bắt đầu quá trình áp dụng các thay đổi.
Lần này, chúng ta không cần phải tạo rõ ràng các tệp variables.tf hoặc output.tf, thay vào đó, chúng ta chỉ cần tham chiếu đến các biến kho lưu trữ mà chúng ta muốn sử dụng. Từ bảng điều khiển quản lý, hãy mở bảng điều khiển EC2 để kiểm tra xem phiên bản đã được tạo hay chưa:
Chúng ta sẽ đề cập đến những gì?
Trong hướng dẫn này, chúng ta sẽ xem cách sử dụng các mô-đun từ Terraform Registry. Chúng ta sẽ thấy điều này bằng cách trình bày ví dụ về việc tạo một phiên bản EC2 trên AWS.Kiểm tra trước khi bay
Đối với hướng dẫn này, chúng ta cần các điều kiện tiên quyết sau:- Terraform phải được cài đặt trên hệ thống cục bộ.
- Kiến thức cơ bản về các mô-đun Terraform.
- Tài khoản AWS.
Sử dụng các mô-đun từ Terraform Registry
Các mô-đun cho các nhà cung cấp khác nhau được duy trì bởi Terraform registry. Có thể tìm kiếm các mô-đun từ trang của sổ đăng ký. Ngoài ra, lưu ý rằng khi thực hiện tìm kiếm, chỉ những mô-đun đã xác minh mới được liệt kê trong kết quả tìm kiếm. Các mô-đun này được HashiCorp kiểm tra để xác nhận tính tương thích và tính ổn định của chúng. Các mô-đun chưa được xác minh cũng có thể được liệt kê bằng tùy chọn lọc tìm kiếm.Các mô-đun được xuất bản trong Terraform Registry có thể được tham chiếu trong mã Terraform thông thường bằng cú pháp:
Mã:
//
Mã:
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
}
Terraform Registry có điều khoản sử dụng cả mô-đun công khai và riêng tư. Terraform Registry công khai cho phép xuất bản và sử dụng các nhà cung cấp và mô-đun một cách công khai. Các mô-đun riêng tư có thể được xuất bản bằng cách sử dụng sổ đăng ký riêng tư.
Khám phá Terraform Registry
Trang mô-đun hiển thị một số thông tin chi tiết ngắn gọn về mô-đun như mô tả về mô-đun, ngày xuất bản, url của mã nguồn, số liệu thống kê tải xuống, v.v. Bạn cũng có thể thấy ở đây nhiều tab khác nhau cho Readme, Inputs, Outputs, Dependency và Resources. Chúng ta có thể tham khảo các phần này để chọn các biến truyền vào mã của mình.Ngoài ra còn có các ví dụ minh họa cách sử dụng mô-đun, ví dụ một mô-đun để tạo phiên bản EC2 được sử dụng trong hướng dẫn này. Trước khi đi sâu vào ví dụ này, trước tiên chúng ta hãy xem bên trong mã nguồn của mô-đun này. Mở mã nguồn url. Trên trang github, có một số thư mục và một số tệp cho mô-đun này. Hiện tại chúng ta chỉ tập trung vào ba tệp terraform: main.tf, outputs.tf và variables.tf. Tệp main.tf chứa nhiều dòng mô tả một phiên bản EC2. Tương tự như vậy, variables.tf và outputs.tf có một số khai báo giá trị đầu vào và đầu ra.
Khởi chạy phiên bản EC2 bằng Module
Bây giờ chúng ta hãy xem cách sử dụng một module từ sổ đăng ký Terraform. Chúng ta sẽ tạo một phiên bản EC2 bằng một module từ ‘terraform-aws-modules’.Bước 1. Mở trang web Terraform Registry và tìm kiếm module aws cho EC2:
Bước 2. Nhấp vào kết quả tìm kiếm ‘terraform-aws-modules/ec2-instance’ như hiển thị ở trên. Mô-đun này được sử dụng để khởi chạy phiên bản AWS EC2 trong trường hợp của chúng tôi.
Bây giờ, hãy xem tệp cấu hình bên dưới mà chúng tôi đã tạo cục bộ trên hệ thống của mình để làm việc với mô-đun này. Trong tệp này, chúng tôi đã bao gồm mô-đun trên bằng cách sử dụng đối số 'nguồn'. Chúng tôi chỉ sử dụng một vài khai báo từ mô-đun thực tế như được mô tả ở đây:
Mã:
$ nano myinstance.tf
Mã:
provider "aws" {
region = "us-east-1"
}
module "ec2_instance" {
source = "terraform-aws-modules/ec2-instance/aws"
version = "~> 3.0"
name = "single-instance"
ami = "ami-0022f774911c1d690"
instance_type = "t2.micro"
availability_zone ="us-east-1a"
key_name = "Your-Key-pair-name"
monitoring = true
vpc_security_group_ids = ["Security-Group-ID"]
putin_khuylo = true
tags = {
Terraform = "true"
Environment = "dev"
}
}
- source: Đối số này là cần thiết khi sử dụng mô-đun Terraform. Trong cấu hình 'ví dụ' ở trên, Terraform sẽ tìm kiếm trong sổ đăng ký Terraform để biết địa chỉ mô-đun được trích dẫn. Các mô-đun cục bộ, URL và các nguồn khác cũng có thể được sử dụng ở đây.
- version: Đây là đối số tùy chọn nhưng được khuyến nghị sử dụng khi làm việc với mô-đun Terraform. Khi được bao gồm, đối số này sẽ tải phiên bản mô-đun Terraform đã chỉ định cho các nguồn được hỗ trợ. Nếu không được sử dụng, phiên bản mô-đun mới nhất có sẵn sẽ được tải.
Bây giờ hãy chạy 'terraform plan' hoặc sử dụng lệnh 'terraform apply' để trực tiếp đưa các thay đổi vào hoạt động:
Mã:
$ terraform apply
Lần này, chúng ta không cần phải tạo rõ ràng các tệp variables.tf hoặc output.tf, thay vào đó, chúng ta chỉ cần tham chiếu đến các biến kho lưu trữ mà chúng ta muốn sử dụng. Từ bảng điều khiển quản lý, hãy mở bảng điều khiển EC2 để kiểm tra xem phiên bản đã được tạo hay chưa: