Sử dụng Terraform v1.0.11 trên Ubuntu 18.04
Sau một địa hình áp dụng
với chính.tf
bên dưới và sau khi đợi phiên bản vượt qua kiểm tra (và sau đó một phút nữa), các nỗ lực SSH đang gặp trở ngại.
$ ssh -v -i ~/.ssh/toydeploy.pem [email protected]
OpenSSH_7.6p1 Ubuntu-4ubuntu0.5, OpenSSL 1.0.2n 7 tháng 12 năm 2017
debug1: Đọc dữ liệu cấu hình /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config dòng 19: Áp dụng tùy chọn cho *
debug1: Đang kết nối với 18.144.125.224 [18.144.125.224] cổng 22.
debug1: kết nối với địa chỉ 18.144.125.224 cổng 22: Hết thời gian kết nối
ssh: kết nối với máy chủ 18.144.125.224 cổng 22: Hết thời gian kết nối
Tôi đã đưa ra một phiên bản theo cách thủ công với cùng một AMI và cặp khóa và có thể SSH vào.So sánh cài đặt mạng và bảo mật trong bảng điều khiển, điểm khác biệt duy nhất mà tôi nhận thấy là phiên bản được triển khai thủ công đang sử dụng VPC mặc định và "Trả lời tên DNS tài nguyên riêng" hiển thị "IPv4 (A)" cho phiên bản được triển khai thủ công và "-" cho địa hình. Cả hai đều có vẻ lành tính, nhưng tôi có thể sai.
địa hình {
required_providers {
aws = {
nguồn = "hashicorp/aws"
phiên bản = "~> 3,27"
}
}
}
nhà cung cấp "aws" {
hồ sơ = "mặc định"
khu vực = "chúng tôi-tây-1"
}
biến "cidr_vpc" {
description = "Khối CIDR cho VPC"
mặc định = "10.1.0.0/16"
}
biến "cidr_subnet" {
description = "Khối CIDR cho mạng con"
mặc định = "10.1.0.0/20"
}
tài nguyên "aws_vpc" "toydeploy-vpc" {
cidr_block = var.cidr_vpc
enable_dns_hostnames = true
enable_dns_support = true
}
tài nguyên "aws_subnet" "toydeploy-subnet" {
vpc_id = aws_vpc.toydeploy-vpc.id
cidr_block = var.cidr_subnet
}
tài nguyên "aws_security_group" "toydeploy-sg" {
tên = "đồ chơi triển khai-sg"
vpc_id = aws_vpc.toydeploy-vpc.id
xâm nhập {
from_port = 22
to_port = 22
giao thức = "tcp"
cidr_blocks = [
"0.0.0.0/0"
]
}
# Terraform xóa quy tắc mặc định, vì vậy chúng tôi thêm lại quy tắc đó.
đi ra {
from_port = 0
to_port = 0
giao thức = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
tài nguyên "aws_instance" "toydeploy" {
ami = "ami-083f68207d3376798" # Ubuntu 18.04
instance_type = "t2.micro"
security_groups = ["${aws_security_group.toydeploy-sg.id}"]
subnet_id = aws_subnet.toydeploy-subnet.id
Associate_public_ip_address = true
key_name = "triển khai đồ chơi"
}
Nếu không có vấn đề nào bên dưới xuất hiện và bạn có thể chỉ cho tôi một ví dụ hoạt động, điều đó cũng sẽ được đánh giá cao.
giải quyết
Kiểm tra kỹ hơn cho thấy bảng định tuyến chỉ định tuyến cho mạng con chứ không phải 0.0.0.0/0. Thêm những điều sau đây giải quyết vấn đề.
tài nguyên "aws_internet_gateway" "toydeploy-ig" {
vpc_id = aws_vpc.toydeploy-vpc.id
}
tài nguyên "aws_route_table" "toydeploy-rt" {
vpc_id = aws_vpc.toydeploy-vpc.id
tuyến đường {
cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.toydeploy-ig.id
}
}
tài nguyên "aws_route_table_association" "toydeploy-rta" {
subnet_id = aws_subnet.toydeploy-subnet.id
route_table_id = aws_route_table.toydeploy-rt.id
}