You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
2.1 KiB
101 lines
2.1 KiB
1 year ago
|
locals {
|
||
|
ssh_user_home = "/home/ec2-user"
|
||
|
}
|
||
|
|
||
|
|
||
|
provider "aws" {
|
||
|
profile = "superuser"
|
||
|
region = "ap-southeast-2"
|
||
|
}
|
||
|
|
||
|
|
||
|
resource "aws_security_group" "allow_tls" {
|
||
|
name = "allow_tls"
|
||
|
description = "Allow TLS inbound traffic plys ssh"
|
||
|
|
||
|
ingress {
|
||
|
description = "TLS from VPC"
|
||
|
from_port = 80
|
||
|
to_port = 80
|
||
|
protocol = "tcp"
|
||
|
cidr_blocks = ["0.0.0.0/0"]
|
||
|
ipv6_cidr_blocks = ["::/0"]
|
||
|
}
|
||
|
|
||
|
ingress {
|
||
|
description = "TLS from VPC"
|
||
|
from_port = 8000
|
||
|
to_port = 8999
|
||
|
protocol = "tcp"
|
||
|
cidr_blocks = ["0.0.0.0/0"]
|
||
|
ipv6_cidr_blocks = ["::/0"]
|
||
|
}
|
||
|
|
||
|
ingress {
|
||
|
from_port = 22
|
||
|
to_port = 22
|
||
|
protocol = "tcp"
|
||
|
cidr_blocks = ["0.0.0.0/0"]
|
||
|
ipv6_cidr_blocks = ["::/0"]
|
||
|
}
|
||
|
|
||
|
egress {
|
||
|
from_port = 0
|
||
|
to_port = 0
|
||
|
protocol = "-1"
|
||
|
cidr_blocks = ["0.0.0.0/0"]
|
||
|
ipv6_cidr_blocks = ["::/0"]
|
||
|
}
|
||
|
|
||
|
tags = {
|
||
|
Name = "allow_tls"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
resource "aws_instance" "test-box" {
|
||
|
|
||
|
ami = "ami-00ffa321011c2611f"
|
||
|
instance_type = "t2.micro"
|
||
|
key_name = "debin"
|
||
|
|
||
|
vpc_security_group_ids = [ aws_security_group.allow_tls.id ]
|
||
|
|
||
|
connection {
|
||
|
type = "ssh"
|
||
|
user = "ec2-user"
|
||
|
host = self.public_ip
|
||
|
private_key = file(pathexpand("~/.ssh/debin.pem"))
|
||
|
}
|
||
|
|
||
|
provisioner "file" {
|
||
|
source = "scripts"
|
||
|
destination = "${local.ssh_user_home}/scripts"
|
||
|
}
|
||
|
|
||
|
provisioner "remote-exec" {
|
||
|
inline = [
|
||
|
"chmod +x ${local.ssh_user_home}/scripts/01-install-docker.sh",
|
||
|
"${local.ssh_user_home}/scripts/01-install-docker.sh",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
provisioner "file" {
|
||
|
source = "compose-app"
|
||
|
destination = "${local.ssh_user_home}/"
|
||
|
}
|
||
|
|
||
|
provisioner "remote-exec" {
|
||
|
inline = [
|
||
|
"cd ${local.ssh_user_home}/compose-app",
|
||
|
"docker-compose up -d",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
tags = {
|
||
|
Name = "terragenerated-simple-ec2"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
output "test-instance-url" {
|
||
|
value = aws_instance.test-box.public_dns
|
||
|
}
|