2017-08-31 98 views
0

创建我有EC2由terraform创建的,我可以通过登陆EC2: SSH -vvvv -i /home/ec2-user/.ssh/mykey.pub EC2用户@ XX.XX.XX.XX不带密码,(XX.XX.XX.XX)是由terraform创建的EC2的IP。不能运行ansible到AWS EC2由terraform

但是当我尝试创建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睡觉与6m后ansible YML启动在那个时候,已经开始在EC2(我可以登录它自己,但它表明“aws_instance.dev:仍然创造......”),即

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

我运行terraform为EC2用户,我设置ansible yml as:

remote_user: ec2-user 
    become_user: ec2-user 

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

回答

1

有一个消息要告诉你:

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

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

+0

我之前没有工作过。所以我创建了一个新的密钥:ssh-keygen,ssh-agent bash,ssh-add key,然后host_key_checking = False进行配置,这次工作正常!感谢您的回答! – user389955

+0

host_key_checking = False – user389955