From cc982905f0442adb9c22ad685081edca7b249bfb Mon Sep 17 00:00:00 2001 From: Edward Viaene Date: Tue, 25 Oct 2016 08:54:33 +0000 Subject: [PATCH] demo-2b --- demo-2b/provider.tf | 6 ++++++ demo-2b/test.txt | 1 + demo-2b/vars.tf | 24 +++++++++++++++++++++++ demo-2b/windows-instance.tf | 39 +++++++++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 demo-2b/provider.tf create mode 100644 demo-2b/test.txt create mode 100644 demo-2b/vars.tf create mode 100644 demo-2b/windows-instance.tf diff --git a/demo-2b/provider.tf b/demo-2b/provider.tf new file mode 100644 index 0000000..39657d4 --- /dev/null +++ b/demo-2b/provider.tf @@ -0,0 +1,6 @@ +provider "aws" { + #access_key = "${var.AWS_ACCESS_KEY}" + #secret_key = "${var.AWS_SECRET_KEY}" + region = "${var.AWS_REGION}" +} + diff --git a/demo-2b/test.txt b/demo-2b/test.txt new file mode 100644 index 0000000..fad23b5 --- /dev/null +++ b/demo-2b/test.txt @@ -0,0 +1 @@ +This is a test.txt that contains some text diff --git a/demo-2b/vars.tf b/demo-2b/vars.tf new file mode 100644 index 0000000..9b4af30 --- /dev/null +++ b/demo-2b/vars.tf @@ -0,0 +1,24 @@ +#variable "AWS_ACCESS_KEY" {} +#variable "AWS_SECRET_KEY" {} +variable "AWS_REGION" { + default = "eu-west-1" +} +variable "WIN_AMIS" { + type = "map" + default = { + us-east-1 = "" + us-west-2 = "" + eu-west-1 = "ami-7ac78809" + } +} + +variable "PATH_TO_PRIVATE_KEY" { + default = "mykey" +} +variable "PATH_TO_PUBLIC_KEY" { + default = "mykey.pub" +} +variable "INSTANCE_USERNAME" { + default = "Terraform" +} +variable "INSTANCE_PASSWORD" { } diff --git a/demo-2b/windows-instance.tf b/demo-2b/windows-instance.tf new file mode 100644 index 0000000..9e42178 --- /dev/null +++ b/demo-2b/windows-instance.tf @@ -0,0 +1,39 @@ +resource "aws_key_pair" "mykey" { + key_name = "mykey" + public_key = "${file("${var.PATH_TO_PUBLIC_KEY}")}" +} + +resource "aws_instance" "win-example" { + ami = "${lookup(var.WIN_AMIS, var.AWS_REGION)}" + instance_type = "t2.micro" + key_name = "${aws_key_pair.mykey.key_name}" + user_data = < +net user ${var.INSTANCE_USERNAME} ${var.INSTANCE_PASSWORD} /add +net localgroup administrators ${var.INSTANCE_USERNAME} /add + +winrm quickconfig -q +winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="300"}' +winrm set winrm/config '@{MaxTimeoutms="1800000"}' +winrm set winrm/config/service '@{AllowUnencrypted="true"}' +winrm set winrm/config/service/auth '@{Basic="true"}' + +netsh advfirewall firewall add rule name="WinRM 5985" protocol=TCP dir=in localport=5985 action=allow +netsh advfirewall firewall add rule name="WinRM 5986" protocol=TCP dir=in localport=5986 action=allow + +net stop winrm +sc.exe config winrm start=auto +net start winrm + +EOF + + provisioner "file" { + source = "test.txt" + destination = "C:/test.txt" + } + connection { + type = "winrm" + user = "${var.INSTANCE_USERNAME}" + password = "${var.INSTANCE_PASSWORD}" + } +}