Невозможно ssh в развертывание terraform - PullRequest
0 голосов
/ 13 ноября 2018

Я следую этому уроку terraform, найденному на gruntwork.io .Я могу использовать $ terraform apply для ускорения виртуальной машины, которая отображается в консоли aws с открытым IP-адресом и всем остальным.К сожалению, экземпляр, кажется, присоединен к ранее определенной группе безопасности и, похоже, не отвечает на ssh или curl, как я мог бы ожидать.

Я изменил группу безопасности так, чтобы были открыты соответствующие порты, и изменил файл main.tf обучающих программ, пытаясь добавить учетную запись пользователя, которую я могу использовать, чтобы хотя бы посмотреть, что работает на виртуальной машине.с.

Результаты terraform apply можно увидеть здесь Когда я пытаюсь выполнить ssh в экземпляр с тестовым пользователем и связанный с ним закрытый ключ, я получаю ответ об отказе в разрешении (это также происходитесли я попытаюсь войти в систему как пользователь по умолчанию, ubuntu).Что я неправильно понимаю, что группы безопасности не определены должным образом и что пользователь не добавляется в экземпляр должным образом.Учебное пособие было написано для terraform 0.7, и я работаю с 0.11.10, но я не могу представить, что что-то настолько простое изменится.

Измененный файл main.tf выглядит следующим образом

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# DEPLOY A SINGLE EC2 INSTANCE
# This template uses runs a simple "Hello, World" web server on a single EC2 Instance
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# ------------------------------------------------------------------------------
# CONFIGURE OUR AWS CONNECTION
# ------------------------------------------------------------------------------

provider "aws" {
  region = "us-east-1"

}

# ---------------------------------------------------------------------------------------------------------------------
# DEPLOY A SINGLE EC2 INSTANCE
# ---------------------------------------------------------------------------------------------------------------------

resource "aws_instance" "example" {
  # Ubuntu Server 14.04 LTS (HVM), SSD Volume Type in us-east-1
  ami = "ami-2d39803a"
  instance_type = "t2.micro"
  vpc_security_group_ids = ["${aws_security_group.instance.id}"]

  user_data = <<-EOF
              #!/bin/bash
              echo "Hello, World" > index.html
              nohup busybox httpd -f -p "${var.server_port}" &
              EOF
  tags {
    Name = "terraform-example"
  }
}

# ---------------------------------------------------------------------------------------------------------------------
# CREATE THE SECURITY GROUP THAT'S APPLIED TO THE EC2 INSTANCE
# ---------------------------------------------------------------------------------------------------------------------

resource "aws_security_group" "instance" {
  name = "terraform-example-instance"

  # Inbound HTTP from anywhere
  ingress {
    from_port = "${var.server_port}"
    to_port = "${var.server_port}"
    protocol = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
  # Inbound SSH from anywhere
  ingress {
    from_port = "22"
    to_port = "22"
    protocol = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

variable "server_port" {
  description = "The port the server will user for the HTTP requests"
  default = 8080
}

# ---------------------------------------------------------------------------------------------------------------------
# Try to add a user to the spun up machine that we can ssh into the account of
# ---------------------------------------------------------------------------------------------------------------------

resource "aws_iam_user" "user" {
  name = "test-user"
  path = "/"
}

resource "aws_iam_user_ssh_key" "user" {
  username = "${aws_iam_user.user.name}"
  encoding = "SSH"
  public_key = <public_key>
}

1 Ответ

0 голосов
/ 13 ноября 2018

Вы не указали имя пары ключей при создании экземпляра ec2.Для использования пользователя Ubuntu для SSH вы должны указать имя пары ключей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...