我有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的原因是什么?
答案 0 :(得分:1)
有一条消息:
主机'XX.XX.XX.XX(XX.XX.XX.XX)'的真实性不能是 成立。
...
您确定要继续连接(是/否)吗?
在执行ssh-keyscan XX.XX.XX.XX
之前执行ansible-playbook
,或在ansible中禁用host key checking。