是否可以在"拉模式下运行剧本"?

时间:2016-07-29 16:33:31

标签: ansible ansible-playbook

我有一些Playbook,我在主控主机上启动,并在远程主机上运行特定操作。这是一个推动" mode - 活动由主控主机启动。

我的几个主机在给定时间内关闭,显然在这种状态下无法运行剧本。这导致主机是最新的,而其他主机则不是。

要解决此问题,我可以定期在主控主机上运行剧本(例如通过cron),但这不是特别有效。

Ansible中是否存在内置方式来反转流,是从远程主机启动主服务器上可用的手册,以便在该远程主机上运行它?

我可以想象远程主机可以ssh到master(例如在启动时),然后以主机作为参数触发playbook(或者围绕这个想法的东西)但是我肯定更喜欢使用Ansible功能而不是重新发明它。

2 个答案:

答案 0 :(得分:5)

有一个名为ansible-pull的脚本,它反转了Ansible的默认推送架构。 Ansible开发人员还提供了example playbook

答案 1 :(得分:3)

使用ansible-pull -d /root/playbooks -i 'localhost,' -U git@bitbucket.org: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,.

选项详情:

sapply

有关详细信息,请参阅此tutorial