vpcs_and_subnets.j 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. {% import 'variables.include' as var %}
  2. ###########
  3. # Create a VPC with an Internet gateway for everybody to play in
  4. resource "aws_vpc" "vpc_primary" {
  5. cidr_block = "${var.VPC-Subnet}"
  6. enable_dns_support = true
  7. enable_dns_hostnames = true
  8. tags {
  9. Name = "Primary VPC"
  10. }
  11. }
  12. resource "aws_internet_gateway" "gw_primary" {
  13. vpc_id = "${aws_vpc.vpc_primary.id}"
  14. tags {
  15. Name = "Primary Gateway"
  16. }
  17. }
  18. ###########
  19. # Create public and private subnets in two different az's
  20. data "aws_availability_zones" "available" {}
  21. resource "aws_subnet" "subnet_public_a" {
  22. vpc_id = "${aws_vpc.vpc_primary.id}"
  23. cidr_block = "${var.Public-Subnet-A}"
  24. availability_zone = "${data.aws_availability_zones.available.names[0]}"
  25. map_public_ip_on_launch = true
  26. tags {
  27. Name = "Public Subnet A"
  28. }
  29. }
  30. #resource "aws_subnet" "subnet_public_b" {
  31. # vpc_id = "${aws_vpc.vpc_primary.id}"
  32. # cidr_block = "${var.Public-Subnet-B}"
  33. # availability_zone = "${data.aws_availability_zones.available.names[1]}"
  34. # map_public_ip_on_launch = true
  35. # tags {
  36. # Name = "Public Subnet B"
  37. # }
  38. #}
  39. #resource "aws_subnet" "subnet_private_a" {
  40. # vpc_id = "${aws_vpc.vpc_primary.id}"
  41. # cidr_block = "${var.Private-Subnet-A}"
  42. # availability_zone = "${data.aws_availability_zones.available.names[0]}"
  43. # map_public_ip_on_launch = true
  44. # tags {
  45. # Name = "Private Subnet A"
  46. # }
  47. #}
  48. #resource "aws_subnet" "subnet_private_b" {
  49. # vpc_id = "${aws_vpc.vpc_primary.id}"
  50. # cidr_block = "${var.Private-Subnet-B}"
  51. # availability_zone = "${data.aws_availability_zones.available.names[1]}"
  52. # map_public_ip_on_launch = true
  53. # tags {
  54. # Name = "Private Subnet B"
  55. # }
  56. #}
  57. ##########
  58. # Routing
  59. resource "aws_route_table" "r" {
  60. vpc_id = "${aws_vpc.vpc_primary.id}"
  61. route {
  62. cidr_block = "0.0.0.0/0"
  63. gateway_id = "${aws_internet_gateway.gw_primary.id}"
  64. }
  65. tags {
  66. Name = "Primary Route Table"
  67. }
  68. }
  69. resource "aws_route_table_association" "rt_public_a" {
  70. subnet_id = "${aws_subnet.subnet_public_a.id}"
  71. route_table_id = "${aws_route_table.r.id}"
  72. }
  73. #resource "aws_route_table_association" "rt_public_b" {
  74. # subnet_id = "${aws_subnet.subnet_public_b.id}"
  75. # route_table_id = "${aws_route_table.r.id}"
  76. #}
  77. #resource "aws_route_table_association" "rt_private_a" {
  78. # subnet_id = "${aws_subnet.subnet_private_a.id}"
  79. # route_table_id = "${aws_route_table.r.id}"
  80. #}
  81. #resource "aws_route_table_association" "rt_private_b" {
  82. # subnet_id = "${aws_subnet.subnet_private_b.id}"
  83. # route_table_id = "${aws_route_table.r.id}"
  84. #}