Ansible - 列出可用的主机

时间:2014-04-09 09:36:20

标签: ansible

我的ansible清单中有一些主机,ansible服务器无法连接到(没有部署pubkey)。

  • 如何列出所有这些内容? (列出无法访问的主机)
  • 也许有办法生成一个包含所有主机的库存文件?

(不太优雅的方式是编写一个剧本并复制命令行输出,但是有更好的方法吗?)

1 个答案:

答案 0 :(得分:3)

要列出它们,您可以使用ping模块,并输出输出:

ANSIBLE_NOCOWS=1 ansible -m ping all 2>&1  | grep 'FAILED => SSH' | cut -f 1 -d' '

如果要生成广告资源,只需将输出重定向到文件中即可:

ANSIBLE_NOCOWS=1 ansible -m ping all 2>&1  | grep 'FAILED => SSH' | cut -f 1 -d' ' > hosts_without_key

然后,您可以在以后提供-i切换到ansible命令时使用它:

ansible-playbook -i hosts_without_key deploy_keys.yml

如果你可以使用密码ssh,并假设你有一个密钥部署playbook(例如deploy_keys.yml),你可以发出:

ansible-playbook -i hosts_without_key deploy_keys.yml -kKu someuser

但是,如果重点是在没有它们的主机上部署密钥,请记住Ansible是幂等的。在任何地方执行deploy_keys.yml剧本都没有坏处(它只是稍长一点)。

祝你好运。