2016-07-29 58 views
2

我在主控主機上啓動並在遠程主機上運行特定操作的playbooks。這是「推送」模式 - 活動由主控主機啓動。是否可以在「拉模式」下運行劇本?

我的幾臺主機在給定的時間都關閉,顯然在這種狀態下無法運行劇本。這導致主機是最新的,而其他主機不是。

爲了解決這個問題,我可以定期在主控主機上運行操作手冊(例如通過cron),但這不是特別有效。

在Ansible中是否有內置的方法來反轉流程,是從遠程主機啓動主控機上可用的劇本,以便在該遠程主機上運行它?

我可以想象,遠程主機可以ssh給主(例如在啓動時),然後觸發主機作爲參數(或圍繞該想法)的劇本,但我一定會喜歡使用Ansible功能而不是重新創造它。

回答

5

有一個名爲ansible-pull的腳本,它顛倒了Ansible的默認推送體系結構。還有Ansible開發人員提供的example playbook

3

採用ansible-pull模式是非常簡單和直接的,這個例子可以幫助你:

ansible-pull -d /root/playbooks -i 'localhost,' -U [email protected]:arbabnazar/pull-test.git --accept-host-key 

選項細節:

1. --accept-host-key: adds the hostkey for the repo url if not already added 
2. -U: URL of the playbook repository 
3. -d: directory to checkout repository to 
4. –i localhost,: This option indicates the inventory that needs to be considered. 
        Since we're only concerned about one host, we use -i localhost,. 

,詳情請參閱本tutorial

相關問題