Create self contained ec2
This commit is contained in:
parent
ebac4004c9
commit
e96b52b85f
6
ec2ml/config.tf
Normal file
6
ec2ml/config.tf
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
provider "aws" {
|
||||||
|
profile = "superuser"
|
||||||
|
region = "ap-southeast-2"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
40
ec2ml/ec2.tf
Normal file
40
ec2ml/ec2.tf
Normal file
@ -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 = [ ]
|
||||||
|
# }
|
43
ec2ml/network.tf
Normal file
43
ec2ml/network.tf
Normal file
@ -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"
|
||||||
|
}
|
||||||
|
}
|
9
ec2ml/outputs.tf
Normal file
9
ec2ml/outputs.tf
Normal file
@ -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
|
||||||
|
}
|
7
ec2ml/variables.tf
Normal file
7
ec2ml/variables.tf
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
variable "instance_type" {
|
||||||
|
default = "t2.micro"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "output_ssh_key" {
|
||||||
|
default = "my_ssh.pem"
|
||||||
|
}
|
1
ec2ml/variables/prod.tfvars
Normal file
1
ec2ml/variables/prod.tfvars
Normal file
@ -0,0 +1 @@
|
|||||||
|
instance_type = "g3.4xlarge"
|
1
ec2ml/variables/sample.tfvars
Normal file
1
ec2ml/variables/sample.tfvars
Normal file
@ -0,0 +1 @@
|
|||||||
|
instance_type =
|
1
ec2ml/variables/test.tfvars
Normal file
1
ec2ml/variables/test.tfvars
Normal file
@ -0,0 +1 @@
|
|||||||
|
instance_type = "t2.micro"
|
Loading…
x
Reference in New Issue
Block a user