Я следую этому уроку 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>
}