Я использовал документацию terraform для изучения terraform, но Я застрял на этом этапе, где мне нужно S SH в экземпляр ec2.
I ' m постоянно получает сообщение об ошибке по истечении 5 минут по умолчанию
aws_instance.example (remote-exec): Connecting to remote host via SSH...
aws_instance.example (remote-exec): Host: 63.32.57.5
aws_instance.example (remote-exec): User: ec2-user
aws_instance.example (remote-exec): Password: false
aws_instance.example (remote-exec): Private key: true
aws_instance.example (remote-exec): Certificate: false
aws_instance.example (remote-exec): SSH Agent: true
aws_instance.example (remote-exec): Checking Host Key: false
aws_instance.example: Still creating... [5m10s elapsed]
aws_instance.example: Still creating... [5m20s elapsed]
Error: timeout - last error: dial tcp 63.32.57.5:22: i/o timeout
normal s sh на сервере возвращает время ожидания.
ssh -i ~/.ssh/terraform ec2-user@52.215.89.205
возвращает
ssh: connect to host 52.215.89.205 port 22: Operation timed out
очевидно, что проблема в том, что s sh не разрешен в группе безопасности. В terraform, как вы получаете по умолчанию vp c?
Я нашел в некоторых онлайн-ответах (например, здесь ), что для устранения этой ошибки go мне нужно настроить группа безопасности, которая позволяет входить через порт 22 в экземпляр ec2. Но до этого момента в документации мы не создавали и не настраивали какую-либо группу безопасности, VP C или su bnet.
Я также пытался изучить дальнейшую документацию, чтобы попытаться создать свою собственную группу безопасности. Вот где я узнал, что группа безопасности также зависит от создания ресурса VP C. И, конечно же, после создания VP C вам придется выполнить некоторые дополнительные настройки, такие как создание собственного su bnet. , таблица маршрутизации, эласт c IP, эт c.
Какой самый простой способ это исправить? Вместо создания нового VP C, я не могу использовать учетные данные по умолчанию VP C. Если это возможно, то как?
Вот мой код terraform до этого момента в do c.
provider "aws" {
profile = "default"
region = "eu-west-1"
version = "~> 2.49"
}
resource "aws_key_pair" "example" {
key_name = "examplekey"
public_key = file("~/.ssh/terraform.pub")
}
resource "aws_instance" "example" {
key_name = aws_key_pair.example.key_name
ami = "ami-0e61341fa75fcaa18"
instance_type = "t2.micro"
# vpc_security_group_ids = ["sg-0e8bcd72"]
# subnet_id = "subnet-6f86e027"
connection {
type = "ssh"
user = "ec2-user"
private_key = file("~/.ssh/terraform")
host = self.public_ip
}
provisioner "remote-exec" {
inline = [
"sudo amazon-linux-extras enable nginx1.12",
"sudo yum -y install nginx",
"sudo systemctl start nginx"
]
}
}
resource "aws_eip" "ip" {
vpc = true
instance = aws_instance.example.id
}
Как я могу сделать эту ошибку тайм-аута go прочь?