3
我在我的安全庫存中找到了一些主機,無法連接到服務器(沒有部署pubkey)。Ansible - 列出可用的主機
- 如何列出所有這些? (列表無法訪問的主機)
- 也許有一種方法可以與所有主機生成庫存文件?
(不太優雅的方式是寫一個劇本和複製的命令行輸出,但有沒有更好的辦法?)
我在我的安全庫存中找到了一些主機,無法連接到服務器(沒有部署pubkey)。Ansible - 列出可用的主機
(不太優雅的方式是寫一個劇本和複製的命令行輸出,但有沒有更好的辦法?)
一一列舉,您可以使用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使用密碼,並假設你有一個密鑰部署劇本(例如deploy_keys.yml
),您可以發出:
ansible-playbook -i hosts_without_key deploy_keys.yml -kKu someuser
但如果問題是部署在主機上的鍵沒有他們,記住Ansible是冪等。在任何地方執行deploy_keys.yml
劇本都沒有什麼壞處(只是更長一點)。
祝你好運。
謝謝,ping是我更喜歡的解決方案。 到目前爲止,密鑰都在一個單獨的密碼管理工具中,所以我只需要一個實例列表來查找並臨時將'ansible_ssh_pass'添加到庫存中的相關服務器 – ProfHase85