一千萬個為什麽

搜索

Ansible是否具有類似於PuppetDB的組件?



我知道Puppet來自(有限)經驗,並且已經註意到在配置管理方面,現在對Ansible有強烈的趨勢。

一方面,我知道Ansible不需要代理,因為它可以智能地使用 ssh

另一方面,這些功能已經成為喜歡木偶的功能:

  • 通過REST API訪問系統範圍的配置狀態和歷史記錄(PuppetDB)
  • 保留覆蓋文件(filebuckets)備份的功能
  • 加密部分Hiera配置( .eyaml )的能力

其中,PuppetDB在我看來是最重要和最有用的(例如與其他工具集成)。因此,我的問題是:Ansible是否具有類似於PuppetDB的功能,即提供API的組件被問到“哪些軟件包安裝在主機 x 上?”或“安裝哪些主機的軟件包 y ?”

(這個問題是從 StackOverflow )遷移過來的。

UPDATE Significant downside of Puppet it my experience so far: Not so much the fact that it requires an agent (from what I have seen, Ansible's use of Python also introduces an agent of sorts in the form of a Python interpreter ;-), but that it wants its agent to act as root only and always.

轉載註明原文: Ansible是否具有類似於PuppetDB的組件?

一共有 1 個回答:

直接答案是“否”。

Ansible沒有任何數據庫,因為它應該由來自不同計算機的不同運營商運行,其目的是確保目標系統處於準確狀態,如劇本中指定的那樣。

有一個選項可將外部事實緩存後端連接到Ansible。因此,您可以將redis設置為您的緩存,Ansible將在Playbook運行期間收集收集到的事實並隨後可以為其查詢redis。但這是一個非常有限的解決方案,因為沒有太多的Ansible收集的事實,例如沒有關於已安裝軟件包的信息 - 您必須自己收集它們以 set_factcacheable 選項將它們放到外部緩存中。