gabriel becker
1 year ago
8 changed files with 108 additions and 0 deletions
@ -0,0 +1,6 @@ |
|||||||
|
provider "aws" { |
||||||
|
profile = "superuser" |
||||||
|
region = "ap-southeast-2" |
||||||
|
} |
||||||
|
|
||||||
|
|
@ -0,0 +1,40 @@ |
|||||||
|
resource "tls_private_key" "mlkey" { |
||||||
|
algorithm = "RSA" |
||||||
|
rsa_bits = 4096 |
||||||
|
} |
||||||
|
|
||||||
|
resource "aws_key_pair" "mlkey" { |
||||||
|
key_name = "mlboxkey" |
||||||
|
public_key = tls_private_key.mlkey.public_key_openssh |
||||||
|
|
||||||
|
provisioner "local-exec" { |
||||||
|
command = "echo '${tls_private_key.mlkey.private_key_pem}' > ./${var.output_ssh_key} & chmod 400 ${var.output_ssh_key}" |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
data "aws_ami" "aws_linux_ami" { |
||||||
|
most_recent = true |
||||||
|
owners = ["amazon"] |
||||||
|
filter { |
||||||
|
name = "name" |
||||||
|
values = ["debian-12-amd64-*"] |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
resource "aws_instance" "ml-box" { |
||||||
|
|
||||||
|
ami = data.aws_ami.aws_linux_ami.id |
||||||
|
instance_type = var.instance_type |
||||||
|
key_name = aws_key_pair.mlkey.key_name |
||||||
|
|
||||||
|
vpc_security_group_ids = [ aws_security_group.allow_tls.id ] |
||||||
|
|
||||||
|
tags = { |
||||||
|
Name = "terragenerated-simple-ec2" |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
# resource "ansible_host" "ml-box" { |
||||||
|
# name = aws_instance.ml-box.public-ip |
||||||
|
# groups = [ ] |
||||||
|
# } |
@ -0,0 +1,43 @@ |
|||||||
|
|
||||||
|
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" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
|
||||||
|
output "ml-instance-url" { |
||||||
|
value = aws_instance.ml-box.public_dns |
||||||
|
} |
||||||
|
|
||||||
|
output "key" { |
||||||
|
value = tls_private_key.mlkey.public_key_openssh |
||||||
|
sensitive = true |
||||||
|
} |
@ -0,0 +1,7 @@ |
|||||||
|
variable "instance_type" { |
||||||
|
default = "t2.micro" |
||||||
|
} |
||||||
|
|
||||||
|
variable "output_ssh_key" { |
||||||
|
default = "my_ssh.pem" |
||||||
|
} |
Loading…
Reference in new issue