From 519b3378b115e8869362215920ab5e3b11f4dcdc Mon Sep 17 00:00:00 2001 From: Joe Tretter Date: Thu, 29 Sep 2022 16:45:35 -0500 Subject: [PATCH] Ubuntu server works. --- appServer.tf | 59 ++++++++++++++++++++++++++++++++++++ ddd => dumbserver.image.tar | Bin main.tf | 27 ----------------- outputs.tf | 4 +-- setupAppServer.sh | 11 +++++++ 5 files changed, 72 insertions(+), 29 deletions(-) create mode 100644 appServer.tf rename ddd => dumbserver.image.tar (100%) delete mode 100644 main.tf create mode 100644 setupAppServer.sh diff --git a/appServer.tf b/appServer.tf new file mode 100644 index 0000000..59fc1ef --- /dev/null +++ b/appServer.tf @@ -0,0 +1,59 @@ +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 4.16" + } + } + + required_version = ">= 1.2.0" +} + +provider "aws" { + region = "us-west-2" +} + +resource "aws_instance" "app_server" { + ami = var.ami_id + instance_type = "t2.micro" + key_name = var.ami_key_pair_name + security_groups = ["${aws_security_group.ingress-all-test.id}"] + + # this is probably the only way to get the remote-execution (below) working. The elastic IP is not avaialable at this time + associate_public_ip_address = true + + tags = { + "Name" = var.ami_name + } + + subnet_id = "${aws_subnet.subnet-uno.id}" + + connection { + type="ssh" + user="ubuntu" + host = self.public_ip + # we are assuming the ppk key is loaded into pageant... + agent = true + } + + # Upload the set up script + provisioner "file" { + source = "setupAppServer.sh" + destination = "/tmp/setupAppServer.sh" + } + + # Uplaod docker image + provisioner "file" { + source = "dumbserver.image.tar" + destination = "/tmp/dumbserver.image.tar" + } + + provisioner "remote-exec" { + inline = [ + "chmod +x /tmp/setupAppServer.sh", + "sudo /tmp/setupAppServer.sh" + ] + + } + +} diff --git a/ddd b/dumbserver.image.tar similarity index 100% rename from ddd rename to dumbserver.image.tar diff --git a/main.tf b/main.tf deleted file mode 100644 index 16c9359..0000000 --- a/main.tf +++ /dev/null @@ -1,27 +0,0 @@ -terraform { - required_providers { - aws = { - source = "hashicorp/aws" - version = "~> 4.16" - } - } - - required_version = ">= 1.2.0" -} - -provider "aws" { - region = "us-west-2" -} - -resource "aws_instance" "app_server" { - ami = var.ami_id - instance_type = "t2.micro" - key_name = var.ami_key_pair_name - security_groups = ["${aws_security_group.ingress-all-test.id}"] - - tags = { - "Name" = var.ami_name - } - - subnet_id = "${aws_subnet.subnet-uno.id}" -} diff --git a/outputs.tf b/outputs.tf index 796edcf..27032d1 100644 --- a/outputs.tf +++ b/outputs.tf @@ -1,7 +1,7 @@ -/* output "instance_public_ip" { +output "instance_public_ip" { description = "Public IP address of the EC2 instance" value = aws_instance.app_server.public_ip -} */ +} output "elastic_ip" { description = "ELASTIC IP" diff --git a/setupAppServer.sh b/setupAppServer.sh new file mode 100644 index 0000000..aeeae41 --- /dev/null +++ b/setupAppServer.sh @@ -0,0 +1,11 @@ +#!/bin/bash +export DEBIAN_FRONTEND=noninteractive + +apt -y update +apt -y upgrade +apt -y update +apt -y install docker.io + +docker image load -i /tmp/dumbserver.image.tar + +docker run -d -p 1280:1280 dumbserver \ No newline at end of file