1) Create VPC from Console
1.1) Subnet creation mode: Automatic
sau khi chờ enable
Giờ chúng ta sẽ tạo tay 1 VPC
Chỗ này đơn giản bạn sẽ hiểu là firewall sẽ chăn all.
Xong giờ ta mở Ping, mở SSH, mở internal access,… thì các VMs mới connect qua lại vơi nhau được.
1.2) Subnet creation mode: Custom
2) VPC with Terraform
File keys.json và provider.tf bạn tham khảo các bài trước.
Và sau đây là main.tf
resource "google_compute_network" "auto-vpc-tf" {
name = "auto-vpc-tf"
auto_create_subnetworks = true
}
resource "google_compute_network" "custom-vpc-tf" {
name = "custom-vpc-tf"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "sub-sg" {
name = "sub-sg"
network = google_compute_network.custom-vpc-tf.id
ip_cidr_range = "10.1.0.0/24"
region = "asia-southeast1"
private_ip_google_access = true
}
resource "google_compute_firewall" "allow-icmp" {
name = "allow-icmp"
network = google_compute_network.custom-vpc-tf.id
allow {
protocol = "icmp"
}
source_ranges = ["49.36.82.10/32"]
priority = 455
}
output "auto" {
value = google_compute_network.auto-vpc-tf.id
}
output "custom" {
value = google_compute_network.custom-vpc-tf.id
}
1.1) Create VPC with Terraform Script
Đâu tiên chúng ta sẽ run như dưới trước
https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_network
resource "google_compute_network" "auto-vpc-tf" {
name = "auto-vpc-tf"
auto_create_subnetworks = true
}
resource "google_compute_network" "custom-vpc-tf" {
name = "custom-vpc-tf"
auto_create_subnetworks = false
}
output "auto" {
value = google_compute_network.auto-vpc-tf.id
}
output "custom" {
value = google_compute_network.custom-vpc-tf.id
}
1.1.1) Find out a role according to requiring permission
Error: Error creating Network: googleapi: Error 403: Required ‘compute.networks.create’ permission for ‘projects/terraform-gcp-xxxx/global/networks/auto-vpc-tf’, forbidden
Nếu bạn lên terraform apply mà bị lỗi trên, bạn để ý dòng mình bôi đỏ lên
.
Giờ chúng ta đã biết role nào là phù hợp thì chúng ta trở về role thôi
Giờ thì gõ terraform apply thôi
1.2) Create Subnet – Terraform
Bạn thấy vpc custom không có config gì?
Chúng ta sẽ làm tiếp ở step tiếp theo.
resource "google_compute_network" "custom-vpc-tf" {
name = "custom-vpc-tf"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "sub-sg" {
name = "sub-sg"
network = google_compute_network.custom-vpc-tf.id
ip_cidr_range = "10.1.0.0/24"
region = "asia-southeast1"
private_ip_google_access = true
}
output "custom" {
value = google_compute_network.custom-vpc-tf.id
}
Ở đây có description của values rồi nè!
https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/compute_regions
1.3) Create Firewall Rule – Terraform
resource "google_compute_network" "auto-vpc-tf" {
name = "auto-vpc-tf"
auto_create_subnetworks = true
}
resource "google_compute_network" "custom-vpc-tf" {
name = "custom-vpc-tf"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "sub-sg" {
name = "sub-sg"
network = google_compute_network.custom-vpc-tf.id
ip_cidr_range = "10.1.0.0/24"
region = "asia-southeast1"
private_ip_google_access = true
}
resource "google_compute_firewall" "allow-icmp" {
name = "allow-icmp"
network = google_compute_network.custom-vpc-tf.id
allow {
protocol = "icmp"
}
source_ranges = ["49.36.82.10/32"]
priority = 455
}
output "auto" {
value = google_compute_network.auto-vpc-tf.id
}
output "custom" {
value = google_compute_network.custom-vpc-tf.id
}
Priority thì đơn giản là đổ ưu tiên của rule đó
Lower value of priority implies higher precedence (eg, a rule with priority 0 has higher precedence than a rule with priority 1). DENY rules take precedence over ALLOW rules having equal priority
Không nói nhiều terraform apply
thôi
và nếu bạn gặp lỗi bên dưới
Error: Error creating Firewall: googleapi: Error 403: Required ‘compute.firewalls.create
‘ permission for ‘projects/terraform-gcp-346216/global/firewalls/allow-icmp’, forbidden
thì như mình chỉ ở trên 1.1.1) Find out a role according to requiring permission
Không nói nhiều terraform apply
thôi