118 lines
3.8 KiB
HCL
118 lines
3.8 KiB
HCL
terraform {
|
|
required_providers {
|
|
aws = {
|
|
source = "hashicorp/aws"
|
|
version = "~> 5.0"
|
|
}
|
|
}
|
|
}
|
|
|
|
provider "aws" {
|
|
region = "eu-west-1"
|
|
|
|
default_tags {
|
|
tags = {
|
|
Project = "espaciodatos-2"
|
|
}
|
|
}
|
|
}
|
|
|
|
resource "aws_vpc" "simpl_vpc" {
|
|
cidr_block = "10.0.0.0/16"
|
|
enable_dns_support = true
|
|
enable_dns_hostnames = true
|
|
|
|
tags = {
|
|
Name = "simpl-vpc-2"
|
|
}
|
|
}
|
|
|
|
resource "aws_subnet" "simpl_subnet" {
|
|
vpc_id = aws_vpc.simpl_vpc.id
|
|
cidr_block = "10.0.1.0/24"
|
|
map_public_ip_on_launch = true
|
|
|
|
tags = {
|
|
Name = "simpl-subnet-2"
|
|
}
|
|
}
|
|
|
|
resource "aws_internet_gateway" "simpl_igw" {
|
|
vpc_id = aws_vpc.simpl_vpc.id
|
|
|
|
tags = {
|
|
Name = "simpl-igw-2"
|
|
}
|
|
}
|
|
|
|
resource "aws_route_table" "simpl_rt" {
|
|
vpc_id = aws_vpc.simpl_vpc.id
|
|
|
|
route {
|
|
cidr_block = "0.0.0.0/0"
|
|
gateway_id = aws_internet_gateway.simpl_igw.id
|
|
}
|
|
|
|
tags = {
|
|
Name = "simpl-rt-2"
|
|
}
|
|
}
|
|
|
|
resource "aws_route_table_association" "simpl_rta" {
|
|
subnet_id = aws_subnet.simpl_subnet.id
|
|
route_table_id = aws_route_table.simpl_rt.id
|
|
}
|
|
|
|
resource "aws_security_group" "simpl_sg" {
|
|
count = 1
|
|
name = "simpl-sg-2"
|
|
description = "SIMPL security group"
|
|
vpc_id = aws_vpc.simpl_vpc.id
|
|
|
|
ingress {
|
|
description = "SSH"
|
|
from_port = 22
|
|
to_port = 22
|
|
protocol = "tcp"
|
|
cidr_blocks = ["0.0.0.0/0"]
|
|
}
|
|
|
|
dynamic "ingress" {
|
|
for_each = toset(["8088"])
|
|
content {
|
|
from_port = tonumber(ingress.value)
|
|
to_port = tonumber(ingress.value)
|
|
protocol = "tcp"
|
|
cidr_blocks = ["0.0.0.0/0"]
|
|
}
|
|
}
|
|
|
|
egress {
|
|
from_port = 0
|
|
to_port = 0
|
|
protocol = "-1"
|
|
cidr_blocks = ["0.0.0.0/0"]
|
|
}
|
|
}
|
|
|
|
resource "aws_instance" "simpl_vm" {
|
|
ami = "ami-02ad7d74d71067c63"
|
|
instance_type = "t3.small"
|
|
subnet_id = aws_subnet.simpl_subnet.id
|
|
vpc_security_group_ids = 1 > 0 ? [aws_security_group.simpl_sg[0].id] : []
|
|
user_data_base64 = "I2Nsb3VkLWNvbmZpZwp1c2VyczoKICAtIGRlZmF1bHQgICAgICAgICAgCiAgLSBuYW1lOiBZNlhMMjA5dzI5CiAgICBncm91cHM6IHN1ZG8sIGRvY2tlcgogICAgc2hlbGw6IC9iaW4vYmFzaAogICAgc3VkbzogQUxMPShBTEwpIE5PUEFTU1dEOkFMTAogICAgbG9ja19wYXNzd2Q6IGZhbHNlCiAgICBwYXNzd2Q6ICQ2JHJvdW5kcz00MDk2JHJjUnd5SFRsZklOVmo5djckaWdXNk1hME5tVTdFNElhYmJQS0t2V2d4RHF3Q1luampEZmRCVW5rbGQ2RnpKM3RtNGRMLjkyeHllZGNXbkpmcVNocklRbUVST3dUcXlCLnVNV3VlUC4KCnBhY2thZ2VzOgogIC0gZG9ja2VyLmlvCgpwYWNrYWdlX3VwZGF0ZTogdHJ1ZQpwYWNrYWdlX3VwZ3JhZGU6IHRydWUKc3NoX3B3YXV0aDogdHJ1ZQoKcnVuY21kOgogIC0gc3lzdGVtY3RsIHN0YXJ0IGRvY2tlcgogIC0gc3lzdGVtY3RsIGVuYWJsZSBkb2NrZXIKICAtIGRvY2tlciBwdWxsIGFwYWNoZS9zdXBlcnNldDpsYXRlc3QKICAtICJkb2NrZXIgcnVuIC1kIC1wIDgwODg6ODA4OCAtLW5hbWUgc3VwZXJzZXQgLS1yZXN0YXJ0IHVubGVzcy1zdG9wcGVkIC1lIFNVUEVSU0VUX1NFQ1JFVF9LRVk9c2ltcGwtc3VwZXJzZXQtc2VjcmV0IGFwYWNoZS9zdXBlcnNldCIKICAtIHNsZWVwIDEyMAogIC0gImRvY2tlciBleGVjIHN1cGVyc2V0IHN1cGVyc2V0IGZhYiBjcmVhdGUtYWRtaW4gLS11c2VybmFtZSBhZG1pbiAtLWZpcnN0bmFtZSBhZG1pbiAtLWxhc3RuYW1lIFVzZXIgLS1lbWFpbCBhZG1pbkB3ZWJlci5jb20gLS1wYXNzd29yZCAnIzQlP0ApMDVHKCciCiAgLSBkb2NrZXIgZXhlYyBzdXBlcnNldCBzdXBlcnNldCBkYiB1cGdyYWRlCiAgLSBkb2NrZXIgZXhlYyBzdXBlcnNldCBzdXBlcnNldCBsb2FkX2V4YW1wbGVzCiAgLSBkb2NrZXIgZXhlYyBzdXBlcnNldCBzdXBlcnNldCBpbml0CiAgLSBkb2NrZXIgcmVzdGFydCBzdXBlcnNldAogIC0gdWZ3IGFsbG93IDIyL3RjcAogIC0gdWZ3IGFsbG93IDgwODgvdGNwCiAgLSB1ZncgLS1mb3JjZSBlbmFibGUKICAtIHN5c3RlbWN0bCByZXN0YXJ0IHNzaGQKCndyaXRlX2ZpbGVzOgogIC0gcGF0aDogL2V0Yy9zc2gvc3NoZF9jb25maWcuZC9zaW1wbC1oYXJkZW5pbmcuY29uZgogICAgY29udGVudDogfAogICAgICBQZXJtaXRSb290TG9naW4gbm8KICAgICAgUGFzc3dvcmRBdXRoZW50aWNhdGlvbiB5ZXMKICAgICAgTWF4QXV0aFRyaWVzIDUKICAgIG93bmVyOiByb290OnJvb3QKICAgIHBlcm1pc3Npb25zOiAnMDY0NCc="
|
|
|
|
root_block_device {
|
|
volume_size = 30
|
|
}
|
|
|
|
tags = {
|
|
Name = "offering-enterprise-server-2-terraform"
|
|
}
|
|
}
|
|
|
|
output "vmIps" {
|
|
depends_on = [aws_instance.simpl_vm]
|
|
value = [aws_instance.simpl_vm.public_ip]
|
|
}
|