Address issues in https://github.com/clong/DetectionLab/issues/216 by utilizing Terraform-native options
This commit is contained in:
@@ -26,9 +26,21 @@ resource "aws_route" "internet_access" {
|
|||||||
resource "aws_subnet" "default" {
|
resource "aws_subnet" "default" {
|
||||||
vpc_id = "${aws_vpc.default.id}"
|
vpc_id = "${aws_vpc.default.id}"
|
||||||
cidr_block = "192.168.38.0/24"
|
cidr_block = "192.168.38.0/24"
|
||||||
|
availability_zone = "${var.availability_zone}"
|
||||||
map_public_ip_on_launch = true
|
map_public_ip_on_launch = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Adjust VPC DNS settings to not conflict with lab
|
||||||
|
resource "aws_vpc_dhcp_options" "default" {
|
||||||
|
domain_name = "windomain.local"
|
||||||
|
domain_name_servers = ["${aws_instance.dc.private_ip}", "${var.external_dns_servers}"]
|
||||||
|
netbios_name_servers = ["${aws_instance.dc.private_ip}"]
|
||||||
|
}
|
||||||
|
resource "aws_vpc_dhcp_options_association" "default" {
|
||||||
|
vpc_id = "${aws_vpc.default.id}"
|
||||||
|
dhcp_options_id = "${aws_vpc_dhcp_options.default.id}"
|
||||||
|
}
|
||||||
|
|
||||||
# Our default security group for the logger host
|
# Our default security group for the logger host
|
||||||
resource "aws_security_group" "logger" {
|
resource "aws_security_group" "logger" {
|
||||||
name = "logger_security_group"
|
name = "logger_security_group"
|
||||||
@@ -185,18 +197,6 @@ resource "aws_instance" "dc" {
|
|||||||
subnet_id = "${aws_subnet.default.id}"
|
subnet_id = "${aws_subnet.default.id}"
|
||||||
vpc_security_group_ids = ["${aws_security_group.windows.id}"]
|
vpc_security_group_ids = ["${aws_security_group.windows.id}"]
|
||||||
private_ip = "192.168.38.102"
|
private_ip = "192.168.38.102"
|
||||||
provisioner "remote-exec" {
|
|
||||||
connection = {
|
|
||||||
type = "winrm"
|
|
||||||
user = "vagrant"
|
|
||||||
password = "vagrant"
|
|
||||||
agent = "false"
|
|
||||||
insecure = "true"
|
|
||||||
}
|
|
||||||
inline = [
|
|
||||||
"powershell -command \"$newDNSServers = @('192.168.38.102','8.8.8.8'); $adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.IPAddress -match '192.168.38.'}; $adapters | ForEach-Object {$_.SetDNSServerSearchOrder($newDNSServers)}\"",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
root_block_device {
|
root_block_device {
|
||||||
delete_on_termination = true
|
delete_on_termination = true
|
||||||
}
|
}
|
||||||
@@ -211,18 +211,6 @@ resource "aws_instance" "wef" {
|
|||||||
subnet_id = "${aws_subnet.default.id}"
|
subnet_id = "${aws_subnet.default.id}"
|
||||||
vpc_security_group_ids = ["${aws_security_group.windows.id}"]
|
vpc_security_group_ids = ["${aws_security_group.windows.id}"]
|
||||||
private_ip = "192.168.38.103"
|
private_ip = "192.168.38.103"
|
||||||
provisioner "remote-exec" {
|
|
||||||
connection = {
|
|
||||||
type = "winrm"
|
|
||||||
user = "vagrant"
|
|
||||||
password = "vagrant"
|
|
||||||
agent = "false"
|
|
||||||
insecure = "true"
|
|
||||||
}
|
|
||||||
inline = [
|
|
||||||
"powershell -command \"$newDNSServers = @('192.168.38.102','8.8.8.8'); $adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.IPAddress -match '192.168.38.'}; $adapters | ForEach-Object {$_.SetDNSServerSearchOrder($newDNSServers)}\"",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
root_block_device {
|
root_block_device {
|
||||||
delete_on_termination = true
|
delete_on_termination = true
|
||||||
}
|
}
|
||||||
@@ -237,18 +225,6 @@ resource "aws_instance" "win10" {
|
|||||||
subnet_id = "${aws_subnet.default.id}"
|
subnet_id = "${aws_subnet.default.id}"
|
||||||
vpc_security_group_ids = ["${aws_security_group.windows.id}"]
|
vpc_security_group_ids = ["${aws_security_group.windows.id}"]
|
||||||
private_ip = "192.168.38.104"
|
private_ip = "192.168.38.104"
|
||||||
provisioner "remote-exec" {
|
|
||||||
connection = {
|
|
||||||
type = "winrm"
|
|
||||||
user = "vagrant"
|
|
||||||
password = "vagrant"
|
|
||||||
agent = "false"
|
|
||||||
insecure = "true"
|
|
||||||
}
|
|
||||||
inline = [
|
|
||||||
"powershell -command \"$newDNSServers = @('192.168.38.102','8.8.8.8'); $adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.IPAddress -match '192.168.38.'}; $adapters | ForEach-Object {$_.SetDNSServerSearchOrder($newDNSServers)}\"",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
root_block_device {
|
root_block_device {
|
||||||
delete_on_termination = true
|
delete_on_termination = true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
variable "region" {
|
variable "region" {
|
||||||
default = "us-west-1"
|
default = "us-west-1"
|
||||||
}
|
}
|
||||||
|
variable "availability_zone" {
|
||||||
|
description = "https://www.terraform.io/docs/providers/aws/d/availability_zone.html"
|
||||||
|
default = ""
|
||||||
|
}
|
||||||
variable "shared_credentials_file" {
|
variable "shared_credentials_file" {
|
||||||
description = "Path to your AWS credentials file"
|
description = "Path to your AWS credentials file"
|
||||||
type = "string"
|
type = "string"
|
||||||
@@ -25,6 +29,11 @@ variable "ip_whitelist" {
|
|||||||
type = "list"
|
type = "list"
|
||||||
default = [""]
|
default = [""]
|
||||||
}
|
}
|
||||||
|
variable "external_dns_servers" {
|
||||||
|
description = "Configure lab to allow external DNS resolution"
|
||||||
|
type = "list"
|
||||||
|
default = ["8.8.8.8"]
|
||||||
|
}
|
||||||
|
|
||||||
# The logger host will provision itself and does not use a pre-built AMI
|
# The logger host will provision itself and does not use a pre-built AMI
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user