如何配置Ansible以使用我的本地SSH配置?

mar*_*t1n 3 ssh ansible

我正在测试Ansible,我已经陷入了一个相当简单的事情.我配置我/etc/ansible/hosts包含我的服务器的IP:

[web]
1.2.3.4
Run Code Online (Sandbox Code Playgroud)

现在,连接到它ansible all -vvvv -m ping失败,因为我~/.ssh/config的指定服务器使用自定义端口,不在默认位置的密钥文件等.如何告诉Ansible重用我的SSH配置进行连接?

ted*_*r42 7

这有点深奥,所以你错过了它是可以理解的.这来自Ansible Inventory页面:

如果您拥有在非标准SSH端口上运行的主机,则可以在主机名后面添加带冒号的端口号.SSH配置文件中列出的端口不会与paramiko连接一起使用,但会与openssh连接一起使用.

为了使事情明确,建议您在默认端口上没有运行时设置它们

所以,在你的情况下:

[web]
1.2.3.4:9000
Run Code Online (Sandbox Code Playgroud)

(9000当然,用作你的alt端口)

Ansible在具有日期版本的ssh的系统上使用paramiko,例如CentOS/RHEL.

  • 好的,这就是端口,那么 IdentityFile 呢?我对所有主机使用不同的密钥,有没有办法指定这些密钥?我真的认为 Ansible 足够聪明,可以从我的 `~/.ssh/config` 中找出所有这些配置选项,而不是复制所有信息。 (2认同)