add terraform scripts
This commit is contained in:
parent
739685f1c2
commit
edbb646281
3 changed files with 93 additions and 0 deletions
24
terraform/README.md
Normal file
24
terraform/README.md
Normal file
|
@ -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"
|
||||||
|
```
|
46
terraform/main.tf
Normal file
46
terraform/main.tf
Normal file
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
23
terraform/variables.tf
Normal file
23
terraform/variables.tf
Normal file
|
@ -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"
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue