From edbb646281dded8768f4222516ec21683caeb663 Mon Sep 17 00:00:00 2001 From: "andreas.holzmann" Date: Thu, 10 Jul 2025 20:55:45 +0200 Subject: [PATCH] add terraform scripts --- terraform/README.md | 24 +++++++++++++++++++++ terraform/main.tf | 46 +++++++++++++++++++++++++++++++++++++++++ terraform/variables.tf | 23 +++++++++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 terraform/README.md create mode 100644 terraform/main.tf create mode 100644 terraform/variables.tf diff --git a/terraform/README.md b/terraform/README.md new file mode 100644 index 0000000..02865da --- /dev/null +++ b/terraform/README.md @@ -0,0 +1,24 @@ +# Terraform Deployment + +## Init and Plan the Terraform Deployment +``` +terraform init + +terraform plan \ + -var="version=1.2.3" \ + -var="environment=prod" \ + -var="http_method=https" \ + -var="public_url=mydomain.com" \ + -var="default_language=de" +``` + +## Apply the Terrform Deployment + +``` +terraform apply \ + -var="version=1.2.3" \ + -var="environment=prod" \ + -var="http_method=https" \ + -var="public_url=mydomain.com" \ + -var="default_language=de" +``` \ No newline at end of file diff --git a/terraform/main.tf b/terraform/main.tf new file mode 100644 index 0000000..a65d6a2 --- /dev/null +++ b/terraform/main.tf @@ -0,0 +1,46 @@ +resource "aws_instance" "docker_host" { + ami = "ami-0c55b159cbfafe1f0" + instance_type = "t3.micro" + key_name = aws_key_pair.deployer.key_name + + provisioner "file" { + source = "../install_docker.sh" + destination = "/home/ubuntu/install_docker.sh" + + connection { + type = "ssh" + user = "ubuntu" + private_key = file(var.private_key_path) + host = self.public_ip + } + } + + provisioner "file" { + source = "../setup.sh" + destination = "/home/ubuntu/setup.sh" + + connection { + type = "ssh" + user = "ubuntu" + private_key = file(var.private_key_path) + host = self.public_ip + } + } + + provisioner "remote-exec" { + inline = [ + "chmod +x /home/ubuntu/install_docker.sh", + "sudo /home/ubuntu/install_docker.sh", + "chmod +x /home/ubuntu/setup.sh", + "sed -i '/^\s*read\b/ s/^/#/' /home/ubuntu/setup.sh", + "sudo VERSION=${var.version} ENVIRONMENT=${var.environment} HTTP_METHOD=${var.http_method} PUBLIC_URL=${var.public_url} default_language=${var.default_language} DOCKER_VOLUME_OWNER=${var.docker_volume_owner} /home/ubuntu/setup.sh" + ] + + connection { + type = "ssh" + user = "ubuntu" + private_key = file(var.private_key_path) + host = self.public_ip + } + } +} \ No newline at end of file diff --git a/terraform/variables.tf b/terraform/variables.tf new file mode 100644 index 0000000..13c8d09 --- /dev/null +++ b/terraform/variables.tf @@ -0,0 +1,23 @@ +variable "version" { + default = "latest" +} + +variable "environment" { + default = "prod" +} + +variable "http_method" { + default = "http" +} + +variable "public_url" { + default = "dev.domain.de" +} + +variable "default_language" { + default = "en" +} + +variable "docker_volume_owner" { + default = "nobody" +}