最近在 Puppet 的一篇 Blog 看到「Easily automate ad hoc work with new Puppet Tasks™」
一直以來 Puppet 都是以 Pull-based 的方式來架構整個 infrastructure,但是每次更新總要等待所有 node 更新完畢,如果要高效率的更新,那你就必須要增加 Node 更新的頻率,那麼你的 Puppet Master 的 Loading 就相對變重。
如果要臨時或一次性的更新,Puppet 在這點就真的做的不好,在 Chef 有 Push Jobs 可以實現,而 Ansible 本身就是 Push-based 所以沒這個問題,這次 Puppet 終於意識到單單 Pull-based 的方式是無法滿足全部的需求。
Puppet Tasks 這次一樣分為 Enterprise 的 Puppet Enterprise Task Management 和 Open Source 的 Puppet Bolt™ 兩種 solutions
- Puppet Bolt 是用 CLI 來執行單次(臨時)任務
現在 Bolt 還在 0.x 版本,文件中有特別聲明在 1.0 版本之前都還在開發階段,但可以先嘗試使用看看 XD … 用 gem install bolt
就可以跑了。
- Puppet Enterprise Task Management
果然付錢就完整多了,有 Jobs 的概念,直接寫 Resource 安排 Jobs。
不過兩者都擁有 Puppet Task API,意味著可能不久就會人寫有更好的工具出來 …