如何解决我无法在 terraform 中通过 ssh 连接到新创建的 ec2 实例
我无法使用 terraform SSH 到我新创建的 ec2 实例
继续获取权限被拒绝(公钥)
我使用 ssh-keygen -t rsa 命令生成了密钥
ssh -i ~/.ssh/ubuntu/mykey ubuntu@44.228.131.143
Root/main.tf ,这里我定义了它然后传递了变量.tf
module "compute" {
source = "./compute"
instance_count = 1
instance_type = "t3.micro"
public_sg = module.networking.public_sg
public_subnets = module.networking.public_subnets
vol_size = 10
public_key_path = "/home/ubuntu/.ssh/mykey.pub"
key_name = "mykey"
user_data_path = "${path.root}/userdata.tpl"
db_endpoint = module.database.db_endpoint
dbuser = var.dbuser
dbpassword = var.dbpassword
dbname = var.dbname
}
计算 main.tf ,参考我的实例
resource "aws_key_pair" "my_key" {
key_name = var.key_name
public_key = file(var.public_key_path)
}
resource "aws_instance" "my_instance" {
count = var.instance_count
instance_type = var.instance_type
ami = data.aws_ami.server_ami.id
tags = {
Name = "my-node ${random_id.random[count.index].dec}"
}
key_name = aws_key_pair.my_key.id
vpc_security_group_ids = [var.public_sg]
subnet_id = var.public_subnets[count.index]
user_data = templatefile(var.user_data_path,{
nodename = "my-node ${random_id.random[count.index].dec}"
db_endpoint = var.db_endpoint
dbuser = var.dbuser
dbpass = var.dbpassword
dbname = var.dbname
}
)
root_block_device {
volume_size = var.vol_size
}
}
通过root/main.tf 的Variable.tf
variable "instance_count" {}
variable "instance_type" {}
variable "vol_size" {}
variable "public_sg" {}
variable "public_subnets" {}
variable "public_key_path" {}
variable "key_name" {}
variable "db_endpoint" {}
variable "dbname" {}
variable "dbpassword" {}
variable "dbuser" {}
variable "user_data_path" {}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。