2017-08-31 101 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