为什么提供主机别名不适用于Ansible Inventory文件?

时间:2015-10-28 09:09:34

标签: ansible ansible-inventory ansible-ad-hoc

生产(库存文件):

#main ansible_host=54.293.2785.210 ansible_port=22 ansible_ssh_user=ubuntu
54.293.2785.210 ansible_ssh_user=ubuntu

运行ad-hoc命令:ansible all -i production -a "hostname" 正常工作!

但是当我取消注释第一行并评论第二行时: ansible main -i production -a "hostname" -vvvv

给出以下错误:

main | FAILED => SSH Error: ssh: Could not resolve hostname main: Name or service not known
It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output to help diagnose the issue.

为什么这不起作用?

1 个答案:

答案 0 :(得分:4)

ansible_ssh_hostnew (>=2.0) syntax

之前只是ansible_ssh_host,但在最新版本的Ansible(> = 2.0)中已弃用此内容:

  

Ansible 2.0已将ansible_ssh_user,ansible_ssh_host和ansible_ssh_port中的“ssh”弃用为ansible_user,ansible_host和ansible_port。如果您使用2.0之前的Ansible版本,则应继续使用较旧的样式变量(ansible_ssh_ *)。在较旧版本的Ansible中,这些较短的变量在没有警告的情况下被忽略。

如果您使用的是早期版本的Ansible,那么$url ="http://rates.fxcm.com/RatesXML3"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, 0); $data = curl_exec($ch); curl_close($ch); 应该适合您。