1
我有一个自定义的“主机”与此输出脚本错误“ansible_ssh_private_key_file”:(的一部分)Ansible剧本需要从主机
"production-public-web": {
"hosts": [
"52.x.y.z"
],
"vars": {
"ansible_ssh_private_key_file": "/home/ec2-user/.ssh/prod1-frankfurt.pem"
}
},
"production-internal": {
"hosts": [
"172.x.y.z"
],
"vars": {
"ansible_ssh_private_key_file": "/home/ec2-user/.ssh/prod1-useast.pem"
}
},
的主机输出看起来很好,我有一个剧本运行上每个服务器组。 但它似乎混淆了私钥。有些服务器可以获得正确的密钥,有些服务器不会例如(-vvvv):
正如你所看到的,这个服务器拿错了私有密钥(美国东部代替法兰克福)
我已经在过去使用不同的私钥没有任何问题。某些服务器会获得正确的私钥。普通的SSH(使用正确的密钥)起作用。
$ ansible-playbook --version
ansible-playbook 2.0.1.0
运行于AWS EC2(CentOS的)
任何线索?
答:由于Konstantin Suvorov评论 - 我的主机脚本输出重复相同的主机在一个以上的组。在我消除了重复之后 - 这一切运行良好。即使没有.ssh/config解决方法。
谢谢!
我找到了一个解决方法,使这项工作 - 添加到〜/ .ssh/config这样的私钥路径:“IdentityFile〜/ .ssh/prod1-frankfurt.pem IdentityFile〜/ .ssh/prod1-useast .pem“(带有换行符)。但是,真实的日志仍然表现出与之前相同的错误。 –
如果从变量中删除“SSH”,会发生什么情况?例如'ansible_private_key_file'? – ydaetskcoR
请检查您的主机脚本的输出为一个主机在多个组。 如果您的示例中的52.x.y.z在稍后位于主机列表中的production-eu-public-web之后的其他组中定义,则它将使用它的变量。 –