Terraform 0.7.7を使用しています。TerraformはAmazon EC2でキーペアをインポートできません
私は、次の持つ単純なテラフォームファイルを持っている:私はグーグルで見つけ
aws_key_pair.personal: Creating...
fingerprint: "" => "<computed>"
key_name: "" => "mschuchard-us-east"
public_key: "" => "ssh-rsa pubkey hash mschuchard-us-east"
aws_instance.personal: Creating...
ami: "" => "ami-c481fad3"
availability_zone: "" => "<computed>"
ebs_block_device.#: "" => "<computed>"
ephemeral_block_device.#: "" => "<computed>"
instance_state: "" => "<computed>"
instance_type: "" => "t2.micro"
key_name: "" => "<computed>"
network_interface_id: "" => "<computed>"
placement_group: "" => "<computed>"
private_dns: "" => "<computed>"
private_ip: "" => "<computed>"
public_dns: "" => "<computed>"
public_ip: "" => "<computed>"
root_block_device.#: "" => "<computed>"
security_groups.#: "" => "<computed>"
source_dest_check: "" => "true"
subnet_id: "" => "<computed>"
tenancy: "" => "<computed>"
vpc_security_group_ids.#: "" => "<computed>"
aws_instance.personal: Creation complete
aws_eip.ip: Creating...
allocation_id: "" => "<computed>"
association_id: "" => "<computed>"
domain: "" => "<computed>"
instance: "" => "i-0ab94b58b0089697d"
network_interface: "" => "<computed>"
private_ip: "" => "<computed>"
public_ip: "" => "<computed>"
vpc: "" => "<computed>"
aws_eip.ip: Creation complete
Error applying plan:
1 error(s) occurred:
* aws_key_pair.personal: Error import KeyPair: InvalidKeyPair.Duplicate: The keypair 'mschuchard-us-east' already exists.
status code: 400, request id: 51950b9a-55e8-4901-bf35-4d2be234abbf
唯一のヘルプは*.tfstate
ファイルを吹き飛ばすことだった:
provider "aws" {
access_key = "${var.access_key}"
secret_key = "${var.secret_key}"
region = "${var.region}"
}
resource "aws_instance" "personal" {
ami = "${lookup(var.amis, var.region)}"
instance_type = "t2.micro"
}
resource "aws_eip" "ip" {
instance = "${aws_instance.personal.id}"
}
resource "aws_key_pair" "personal" {
key_name = "mschuchard-us-east"
public_key = "${var.public_key}"
}
Terraform apply
次のエラーを生成します私は試したが、それは助けにはならなかった。私はこのキーペアでguiを使ってEC2インスタンスを起動することができ、簡単にsshを実行できますが、同じ機能キーペアを使用しようとするとTerraformはエラーになります。
私の場合、インポートには 'aws_key_pair.personal'があります。とにかく、しばらくの間、資格情報と戦って、Terraformに資格証明ファイルを使用させることをあきらめた後、 'terraform apply'をインポートして実行しました。次に、リソースが実際にやっていたことと、 'key_name'をインスタンスに関連付ける方法を理解しました。 Terraformはユーザーにとって使い勝手が悪く、高度なチュートリアルが本当に必要です。インポートコマンドを編集して、この回答を受け入れます。 –
また、EC2のインスタンスダッシュボードを見て、私も 'vpc_security_group_ids'が必要であることを認識しました。今私は実際にTerraformによって作成されたEC2インスタンスにうまくいきますが、$ {aws_instance.personal.public_dns}の出力は完全に不正確です。 –