2017-04-12 72 views
2

使用ansible-playbook命令,我們可以爲庫存中的所有主機執行劇本,並且我有一個從網絡服務器中刪除緩存的劇本。但除非開發人員要求這樣做,否則我不應刪除特定計算機上的緩存。使用可執行劇本選擇特定主機/主機組

但通過使用ansible-playbook我無法從庫存中選擇特定的主機。但我可以使用一些語法,如ansible-playbook somebook.play -i hostname,,但是這會查找DNS條目並執行相應的操作,但不會檢查庫存文件。

還有一種方法是創建每個主機的單個庫存文件並根據開發人員的請求主機調用它們,我不知道這是多少建議的方式。

最後一種方法AFAIK通過Python使用ansible.runner,並在hostname中使用模式並調用python程序。

感謝您閱讀我的長文章。

除此之外,您是否知道在執行劇本時從庫存中選擇特定主機/主機組的其他方式?

我想知道任何其他方法,但只使用可靠的劇本和庫存文件。

回答

4

但通過使用ansible-playbook我無法從庫存中選擇特定的主機。

是的,你可以 - 執行ansible-playbook --help命令來顯示幫助:

Usage: ansible-playbook playbook.yml 

Options: 

<--- cut ---> 

    -l SUBSET, --limit=SUBSET 
         further limit selected hosts to an additional pattern 

<--- cut ---> 

如果你想知道一個模式 - 有上patterns一個幫助頁面。

+0

我怎麼錯過這個?非常感謝你。 –