Начиная с Terraform недавно с GCP, я хотел бы закончить упражнение:
- Создание новой сети VPC с одной подсетью.
- Создайте правило брандмауэра, разрешающее внешний трафик RDP в хост-систему бастиона.
- Разверните два сервера Windows, которые подключены как к сети VPC, так и к сети по умолчанию.
- Создайте виртуальную машину, которая указывает на сценарий запуска.
- Настройте правило брандмауэра, чтобы разрешить HTTP-доступ к виртуальной машине.
Вот мое решение:
- Создайте новую сеть VPC под названием securenetwork, затем создайте новую подсеть VPC внутри защищенной сети. После настройки сети и подсети настройте правило брандмауэра, которое разрешает входящий трафик RDP (порт TCP 3389) из Интернета на хост бастиона.
# Create the securenetwork network
resource "google_compute_network" "securenetwork" {
name = "securenetwork"
auto_create_subnetworks = false
}
# Create securesubnet-us subnetwork
resource "google_compute_subnetwork" "securesubnet-eu" {
name = "securesubnet-eu"
region = "europe-west1"
network = "${google_compute_network.securenetwork.self_link}"
ip_cidr_range = "10.130.0.0/20"
}
# Create a firewall rule to allow HTTP, SSH, RDP and ICMP traffic on securenetwork
resource "google_compute_firewall" "securenetwork-allow-http-ssh-rdp-icmp" {
name = "securenetwork-allow-http-ssh-rdp-icmp"
network = "${google_compute_network.securenetwork.self_link}"
allow {
protocol = "tcp"
ports = ["3389"]
}
allow {
protocol = "icmp"
}
}
# Create the vm-securehost instance
module "vm-securehost" {
source = "./instance/securehost"
instance_name = "vm-securehost"
instance_zone = "europe-west1-d"
instance_subnetwork = "${google_compute_subnetwork.securesubnet-eu.self_link}"
instance_network = "${google_compute_network.securenetwork.self_link}"
}
# Create the vm-bastionhost instance
module "vm-bastionhost" {
source = "./instance/bastionhost"
instance_name = "vm-bastionhost"
instance_zone = "europe-west1-d"
instance_subnetwork = "${google_compute_subnetwork.securesubnet-eu.self_link}"
instance_network = "${google_compute_network.securenetwork.self_link}"
}
Развертывание экземпляров Windows
- экземпляр сервера Windows 2016 с именем vm-securehost с двумя сетевыми интерфейсами. Настройте первый сетевой интерфейс с внутренним единственным подключением к новой подсети VPC, а второй сетевой интерфейс - с внутренним единственным подключением к сети VPC по умолчанию. Это безопасный сервер.
variable "instance_name" {}
variable "instance_zone" {}
variable "instance_type" {
default = "n1-standard-1"
}
variable "instance_subnetwork" {}
variable "instance_network" {}
resource "google_compute_instance" "vm_instance" {
name = "${var.instance_name}"
zone = "${var.instance_zone}"
machine_type = "${var.instance_type}"
boot_disk {
initialize_params {
image = "windows-cloud/windows-2016"
}
}
network_interface {
subnetwork = "${var.instance_subnetwork}"
access_config {
# Allocate a one-to-one NAT IP to the instance
}
}
}
- второй экземпляр сервера Windows 2016 с именем vm-bastionhost с двумя сетевыми интерфейсами. Настройте первый сетевой интерфейс для подключения к новой подсети VPC с эфемерным публичным (внешним NAT) адресом, а второй сетевой интерфейс - только для внутреннего подключения к сети VPC по умолчанию. Это поле прыжка или бастион.
variable "instance_name" {}
variable "instance_zone" {}
variable "instance_type" {
default = "n1-standard-1"
}
variable "instance_subnetwork" {}
variable "instance_network" {}
resource "google_compute_address" "default" {
name = "default"
region = "europe-west1"
}
resource "google_compute_instance" "vm_instance" {
name = "${var.instance_name}"
zone = "${var.instance_zone}"
machine_type = "${var.instance_type}"
boot_disk {
initialize_params {
image = "windows-cloud/windows-2016"
}
}
network_interface {
subnetwork = "${var.instance_subnetwork}"
network = "${var.instance_network}"
access_config {
# Allocate a one-to-one NAT IP to the instance
nat_ip = "${google_compute_address.default.address}"
}
}
}
Мой вопрос:
- как настроить экземпляр вычисления Windows под названием vm-securehost, который не имеет публичного IP-адреса?
- как настроить экземпляр вычисления Windows под названием vm-securehost, который запускает программное обеспечение веб-сервера Microsoft IIS при запуске?
- Спасибо за любой комментарий к решению