无法运行由terraform创建的AWS EC2

时间:2017-08-31 06:41:23

标签: amazon-ec2 ansible terraform

我有terraform创建的EC2,我可以使用以下命令登录ec2: ssh -vvvv -i /home/ec2-user/.ssh/mykey.pub ec2-user@XX.XX.XX.XX无密码,(XX.XX.XX.XX)是由terraform创建的EC2的IP

但是当我在创建ec2时尝试在terraform中运行ansible文件时,ansible无法运行并且错误消息是:

aws_instance.dev (local-exec): TASK [Gathering Facts] 
*********************************************************
The authenticity of host 'XX.XX.XX.XX (XX.XX.XX.XX)' can't be 
established.
...
Are you sure you want to continue connecting (yes/no)? 
aws_instance.dev: Still creating... (6m40s elapsed)

注意我手动强制使用terraform睡眠6米后启动ansible yml,此时EC2已经启动(我可以自己登录,虽然它显示了" aws_instance.dev:仍在创建.. 。")即

resource "aws_instance" "dev" {
  ...
      provisioner "local-exec" {
  command = "sleep 6m && ansible-playbook -i hosts myansible.yml"
  }
  ...
}

我以ec2-user运行terraform,我将ansible yml设置为:

  remote_user: ec2-user
  become_user: ec2-user

ansible不能ssh到EC2的原因是什么?

1 个答案:

答案 0 :(得分:1)

有一条消息:

  

主机'XX.XX.XX.XX(XX.XX.XX.XX)'的真实性不能是   成立。
  ...
  您确定要继续连接(是/否)吗?

在执行ssh-keyscan XX.XX.XX.XX之前执行ansible-playbook,或在ansible中禁用host key checking