Trong bài viết này, tôi sẽ chỉ cho bạn cách sử dụng Terraform để tạo thùng S3 trên AWS. Trước khi tiếp tục, tôi cho rằng bạn đã quen thuộc với thùng S3, nếu chưa thì bạn có thể nhấp vào đây để xem các bước tạo thùng S3 từ bảng điều khiển AWS.
Sử dụng lệnh sau để tạo một thư mục và thay đổi thư mục làm việc hiện tại của bạn thành thư mục đó.
Tôi đang sử dụng "vim" làm trình soạn thảo để viết trong các tệp, bạn có thể sử dụng trình soạn thảo theo lựa chọn của mình và sao chép dán các cấu hình sau để tạo variables.tf, terraform.tfvars và main.tf
Tạo 'main.tf' chịu trách nhiệm tạo S3 Bucket trên AWS. main.tf này sẽ đọc các giá trị của biến từ variables.tf và terraform.tfvars.
Tạo 'variables.tf' chứa khai báo và định nghĩa của các biến.
Khi bạn đã tạo 'variables.tf', đừng quên thay đổi các giá trị được gán cho biến. Bạn phải thay đổi các giá trị được tô sáng vì chúng dành riêng cho môi trường của tôi. Bạn có thể giữ nguyên các biến còn lại.
Tạo 'terraform.tfvars' chứa định nghĩa của các biến access_key và secret_key được định nghĩa trong tệp ở trên cùng với biến "region".
Các khóa sau cần được thay đổi bằng các khóa của người dùng IAM của bạn.
Bây giờ, bạn sẽ có 3 tệp, tức là variables.tf, terraform.tfvars và main.tf
Lệnh đầu tiên được sử dụng là 'terraform init'. Lệnh này tải xuống và cài đặt các plugin cho các nhà cung cấp được sử dụng trong cấu hình. Trong trường hợp của chúng tôi, đó là AWS.
Lệnh thứ hai được sử dụng là 'terraform plan'. Lệnh này được sử dụng để xem những thay đổi sẽ diễn ra trên cơ sở hạ tầng.
Lệnh 'terraform apply' sẽ tạo các tài nguyên trên AWS được đề cập trong tệp main.tf. Bạn sẽ được nhắc nhập thông tin đầu vào để tạo tài nguyên.
Khi bạn thực thi lệnh trên, sau khi hoàn tất thành công, bạn có thể thấy 1 tài nguyên mới đã được thêm vào và 0 tài nguyên đã bị hủy.
Bạn có thể vào bảng điều khiển AWSS3 để xác minh xem S3 Bucket đã được tạo hay chưa.
Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng tài nguyên đã bị hủy.
Điều kiện tiên quyết
- Hiểu biết cơ bản về Terraform.
- Terraform đã được cài đặt trên hệ thống của bạn.
- Tài khoản AWS (Tạo nếu bạn chưa có).
- 'access_key' & 'secret_key' của Người dùng AWS IAM. (Nhấp vào đây để tìm hiểu cách tạo người dùng IAM với 'access_key' và 'secret_key' trên AWS, )
Những gì chúng tôi sẽ làm
- Viết các tệp cấu hình Terraform cho S3 Bucket.
- Tạo S3 Bucket bằng các tệp cấu hình Terraform.
- Xóa S3 Bucket đã tạo bằng Terraform.
Viết các tệp cấu hình Terraform cho S3 Xô
Tạo một thư mục chuyên dụng nơi bạn có thể tạo các tệp cấu hình Terraform.Sử dụng lệnh sau để tạo một thư mục và thay đổi thư mục làm việc hiện tại của bạn thành thư mục đó.
Mã:
[I]mkdir terraform[B][/I][I]cd terraform/[/I]
Tạo 'main.tf' chịu trách nhiệm tạo S3 Bucket trên AWS. main.tf này sẽ đọc các giá trị của biến từ variables.tf và terraform.tfvars.
Mã:
[I]vim main.tf[/I]
Mã:
provider "aws" { region = "${var.region}" access_key = "${var.access_key}" secret_key = "${var.secret_key}"}resource "aws_s3_bucket" "this" { bucket = "${var.bucket_name}" force_destroy = "${var.force_destroy}" region = "${var.region}" tags = "${merge(var.tags, map("Name", format("%s", var.bucket_name)))}"}
Ở đây,
-
[B]bucket:
[/b]Tên của bucket. Nếu bỏ qua, Terraform sẽ gán một tên ngẫu nhiên, duy nhất. -
force_destroy:
Một boolean chỉ ra tất cả các đối tượngnên được xóa khỏi bucket để bucket có thể bị hủy mà không có lỗi. -
region
:Vùng AWS mà bucket này sẽ nằm trong đó. -
[B]tags[/b]:
Bản đồ các thẻ để gán cho bucket.
Tạo 'variables.tf' chứa khai báo và định nghĩa của các biến.
Mã:
[I]vim variables.tf[/I]
Mã:
biến "access_key" { description = "Khóa truy cập vào bảng điều khiển AWS"}biến "secret_key" { description = "Khóa bí mật vào bảng điều khiển AWS"}biến "region" { description = "Khu vực của AWS VPC"}biến "bucket_name" { description = "(Bắt buộc) Tạo tên bucket duy nhất" type = "string" default = "test-bucket-rahul-delete"}biến "force_destroy" { description = "(Tùy chọn) Một boolean chỉ ra rằng tất cả các đối tượng nên được xóa khỏi bucket để bucket có thể bị hủy mà không có lỗi" type = "string" default = true}biến "tags" { description = "(Tùy chọn) Ánh xạ các thẻ để gán cho bucket" type = "map" default = {"env": "test"}}
Tạo 'terraform.tfvars' chứa định nghĩa của các biến access_key và secret_key được định nghĩa trong tệp ở trên cùng với biến "region".
Các khóa sau cần được thay đổi bằng các khóa của người dùng IAM của bạn.
Mã:
[I]vim terraform.tfvars[/I]
Mã:
region = "eu-west-3"access_key = "AKIAQ6GAIA5XFLXF6HOV"secret_key = "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"
Tạo một S3 Bucket bằng cách sử dụng các tệp cấu hình Terraform
Trước khi thực hiện các lệnh sau, hãy đảm bảo rằng bạn đã cấu hình access_key và secret_key hợp lệ.Lệnh đầu tiên được sử dụng là 'terraform init'. Lệnh này tải xuống và cài đặt các plugin cho các nhà cung cấp được sử dụng trong cấu hình. Trong trường hợp của chúng tôi, đó là AWS.
Mã:
[I][/I][/b][I]terraform init[/I]
Lệnh thứ hai được sử dụng là 'terraform plan'. Lệnh này được sử dụng để xem những thay đổi sẽ diễn ra trên cơ sở hạ tầng.
Mã:
[I]terraform plan[/I]
Lệnh 'terraform apply' sẽ tạo các tài nguyên trên AWS được đề cập trong tệp main.tf. Bạn sẽ được nhắc nhập thông tin đầu vào để tạo tài nguyên.
Mã:
terraform apply
Khi bạn thực thi lệnh trên, sau khi hoàn tất thành công, bạn có thể thấy 1 tài nguyên mới đã được thêm vào và 0 tài nguyên đã bị hủy.
Bạn có thể vào bảng điều khiển AWSS3 để xác minh xem S3 Bucket đã được tạo hay chưa.
Xóa S3 Bucket bằng Terraform
Nếu bạn không còn cần tài nguyên đã tạo bằng cấu hình được đề cập trong tệp main.tf nữa, bạn có thể sử dụng lệnh "terraform destroy" để xóa tất cả các tài nguyên đó. Tại đây, thùng S3 sẽ bị xóa khi thực hiện lệnh sau.
Mã:
terraform destroy