Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible-列出可用主机_Ansible - Fatal编程技术网

Ansible-列出可用主机

Ansible-列出可用主机,ansible,Ansible,我的ansible资源清册中有一些ansible服务器无法连接的主机(没有部署pubkey) 我如何列出所有这些?(列出无法访问的主机) 也许有一种方法可以生成包含所有主机的清单文件 (不太优雅的方法是编写剧本和复制命令行输出,但有更好的方法吗?要列出它们,可以使用ping模块,并通过管道输出: ANSIBLE_NOCOWS=1 ansible -m ping all 2>&1 | grep 'FAILED => SSH' | cut -f 1 -d' ' 如果要生成

我的ansible资源清册中有一些ansible服务器无法连接的主机(没有部署pubkey)

  • 我如何列出所有这些?(列出无法访问的主机)
  • 也许有一种方法可以生成包含所有主机的清单文件

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

要列出它们,可以使用
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
然后,您可以稍后使用它,提供切换到ansible命令的
-i

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\u keys.yml
playbook都没有坏处(只是稍微长一点)


祝你好运。

谢谢,ping是我喜欢的解决方案。到目前为止,密钥都在一个单独的密码管理工具中,所以我只需要一个实例列表来查找,并将
ansible\u ssh\u pass
临时添加到清单中的相关服务器