ansible - 如何在运行ansible-playbook以解析主机名时传递本地DNS服务器

时间:2015-05-19 22:12:10

标签: command-line dns ansible ansible-playbook resolve

我正在使用ansible(ansible 1.9.0.1)。

我正在运行ansible-playbook,使用它的主机名在目标/远程计算机上执行某些操作。

我的广告资源文件中有一个主机名条目,即appserver01.newdomainname.com

当我运行ansible-playbook来做一个简单的(hello world示例)时,它不会解析主机名。如果在库存文件中,我有x.x.x.x IP,那么它可以工作!!!!

因此,我的源机器/etc/resolv.conf中的名称服务器或搜索似乎没有使用它的完全限定域名解析远程主机名,即appserver01.newdomainname.com

有什么方法可以调用ansible-playbook并传递新的/本地DNS服务器,以便ansible可以首先从该DNS解析主机名(在库存文件中)(而不是从/ etc /中读取/解析它) resolv.conf的)。

PS :我无法将此新的/本地DNS名称服务器xx.xx.yy.zz添加到/etc/resolv.conf。

1 个答案:

答案 0 :(得分:1)

解决此问题的一种方法是在广告资源文件中使用 ansible_ssh_host 属性。这与连接到本地DNS不同,但有点像使用您的广告资源传输DNS记录。这样,您仍然可以通过主机名引用服务器,而无需在服务器主机文件中放置任何内容。所以它看起来像这样:

[myservers] appserver01.newdomainname.com ansible_ssh_host=x.x.x.x

您甚至可以将这些映射移到host_vars文件中,并为每个部署环境保留不同的IP列表。