Trong bài viết này, chúng ta sẽ xem cách tạo EC2 Instance bằng Terraform. Trước khi tiếp tục, tôi cho rằng bạn đã quen thuộc với những điều cơ bản của Terraform và AWS EC2 Instance. Nếu bạn muốn tìm hiểu cách tạo phiên bản EC2 từ bảng điều khiển AWS, hãy nhấp vào đây.
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 vào các tệp, bạn có thể sử dụng trình soạn thảo tùy chọn và sao chép dán các cấu hình sau để tạo các biến.tf, terraform.tfvars và main.tf
Tạo 'main.tf' có trách nhiệm tạo EC2 trên AWS. main.tf này sẽ đọc các giá trị của biến từ variables.tf và terraform.tfvars.
Thay đổi giá trị của "region" nếu bạn muốn tạo phiên bản trong một vùng khác với vùng tôi đã chỉ định.
Tạo 'variables.tf' chứa khai báo và định nghĩa của các biến.
Sau 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 ami_key_pair_name, ami_id và subnet_id vì những giá trị này dành riêng cho môi trường của tôi. Bạn có thể giữ nguyên biến rest.
Tạo 'terraform.tfvars' chứa định nghĩa của các biến access_key và secret_key được xác định trong tệp ở trên. Chúng tôi đã lưu giữ khai báo của 2 biến này trong tệp 'terraform.tfvars'.
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, bạn có thể thấy rằng1 tài nguyên mới đã được thêm vào và 0 tài nguyên đã bị hủy trong kết quả.
Bạn có thể vào bảng điều khiển AWS EC2 để xác minh xem phiên bản EC2 đã được tạo hay chưa.
Điều kiện tiên quyết
- Hiểu biết cơ bản về Terraform.
- Terraform đã 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, )
Chúng ta sẽ làm gì
- Viết các tệp cấu hình Terraform để tạo một EC2 Instance.
- Tạo một EC2 bằng các tệp cấu hình Terraform.
- Xóa EC2 instance đã tạo bằng Terraform.
Viết các tệp cấu hình Terraform để tạo một EC2 Instance
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' có trách nhiệm tạo EC2 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" { access_key = "${var.access_key}" secret_key = "${var.secret_key}" region = "eu-west-3"}resource "aws_instance" "ec2_instance" { ami = "${var.ami_id}" count = "${var.number_of_instances}" subnet_id = "${var.subnet_id}" instance_type = "${var.instance_type}" key_name = "${var.ami_key_pair_name}"}[B][/b]
Tạo 'variables.tf' chứa khai báo và định nghĩa của các biến.
Mã:
vim variables.tf
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 "instance_name" { description = "Tên của phiên bản sẽ được tạo" default = "test"}biến "instance_type" { default = "t2.micro"}biến "subnet_id" { description = "Mạng con VPC mà phiên bản sẽ được tạo trong đó" default = "subnet-a5a72ce8"}biến "ami_id" { description = "AMI sẽ sử dụng" default = "ami-096b8af6e7e8fb927"}biến "number_of_instances" { description = "number of instances to be created" default = 1}biến "ami_key_pair_name" { default = "tomcat"}
Tạo 'terraform.tfvars' chứa định nghĩa của các biến access_key và secret_key được xác định trong tệp ở trên. Chúng tôi đã lưu giữ khai báo của 2 biến này trong tệp 'terraform.tfvars'.
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ã:
access_key = "AKIAQ6GAIA5XIHHM2GJM"secret_key = "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"
Tạo một EC2 Instance bằng cách sử dụng Tệp cấu hình Terraform
Trước khi thực hiện các lệnh sau, hãy đảm bảo 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]
Mã:
[I]terraform plan[/I]
Mã:
terraform apply
Bạn có thể vào bảng điều khiển AWS EC2 để xác minh xem phiên bản EC2 đã được tạo hay chưa.
Xóa phiên bản EC2 đã tạo bằng Terraform
Nếu bạn không còn yêu cầu tài nguyên đã tạo bằng cấu hình được đề cập trong tệp main.tf, bạn có thể sử dụng lệnh "terraform destroy" để xóa tất cả các tài nguyên đó.
Mã:
terraform destroy