21 de Fevereiro de 2024 - @Walmir Neto
Ontem foi dia de mostrar Como provisionar EC2 com Tofu, só que ela está inacessível e para gente poder acessar, vamos precisar criar alguns arquivos para que o tofu
adicionar sua chave SSH e um Security Group na AWS para que possamos acessar o server
Você precisa criar um arquivo aws_key_pairs.tf
para dizer a AWS qual chave tem acesso o servidor
variable "public_key_path" {
type = string
default = "~/.ssh/id_rsa.pub"
description = "SSH key to acess EC2"
sensitive = true
}
resource "aws_key_pair" "demo_ssh_key" {
key_name = "Rails Demo"
public_key = file(var.public_key_path)
}
Além disso é preciso colocar key_name
no aws_instance
:
# tofu/aws_instances.tf
resource "aws_instance" "demo_instance" {
ami = local.instance_ami
instance_type = local.instance_type
+ key_name = aws_key_pair.demo_ssh_key.key_name
tags = local.instance_tags
}
Agora é só roda:
cd tofu
tofu validate # to validate if code is valid
tofu plan # to check if everything is ok
tofu apply -auto-approve # DON'T USE `-auto-approve` if you're not sure
Agora o Security Group
resource "aws_security_group" "access_ssh" {
name = "rails_demo_access_ssh"
description = "Access SSH"
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
tags = {
Name = "access_ssh"
}
}
Além disso
resource "aws_instance" "demo_instance" {
ami = local.instance_ami
instance_type = local.instance_type
key_name = aws_key_pair.demo_ssh_key.key_name
+ vpc_security_group_ids = [aws_security_group.access_ssh.id]
+
tags = local.instance_tags
}
Com isso já pode rodar:
tofu validate # to validate if code is valid
tofu plan # to check if everything is ok
tofu apply -auto-approve # DON'T USE `-auto-approve` if you're not sure
Lembra da instancia que levantamos antes, vamo precisar do IP dela 44.202.66.149