我應該使用哪種配置管理工具?聚焦安斯布爾
IT 基礎架構正在遷移到雲;虛擬機和容器正在激增。即時應用程式的數量不斷增加,所有這些應用程式都託管在伺服器上。當今的系統管理員和 DevOps 團隊必須管理大量伺服器;遠遠超過幾年前。
為了應對這一技術挑戰,已經開發了配置管理(CM)和遠端執行(RE)工具。這些應用程式可幫助系統管理員保持對其伺服器基礎架構的可見性,並使他們能夠大規模部署和採取行動。CM 和 RE 工具允許一次在多台伺服器上執行任務,以及一鍵式應用程式部署。他們通過稱為基礎結構即代碼 (IaC) 的過程來實現這一點,在該過程中,IT 環境通過程式設計語言表示。
Puppet,Ansible,Chef和SaltStack是這個技術領域的四大巨頭。(所有這些都可用於部署 KernelCare。這是Ansible的低谷。
優點:羽量級和基於Python的
Ansible 於 2012 年首次發佈,現在歸 Red Hat 所有,是開源的,由 AnsibleWorks 提供支援。企業版稱為Ansible Tower。與SaltStack一樣,Ansible的建立是為了應對大熱門Puppet和Chef的缺陷。與用Ruby開發的Puppet不同,Ansible是用Python開發的。
– 最容易學習、增長最快、最受歡迎的程式設計語言。與Puppet不同,使用應用程式原生域特定語言(DSL)沒有壓力。
這種靈活性是 Ansible 的主要優勢。Ansible 輕量級、靈活且部署快速。開銷很低,入職非常容易。安裝是無代理的,並且用戶端計算機上沒有運行代理。所有功能都通過 SSH 執行,對於不支援根 SSH 的配置,Ansible 可以 sudo 作為根。對於較小的任務,可以從 CLI(命令行介面)運行 Ansible,而無需使用設定檔。可以在稱為劇本的配置檔中使用YAML語法處理更大的任務。Ansible 為雲中的多層應用程式提供零停機滾動更新。
最值得注意的是,Anisble的CLI命令幾乎可以用 任何 程式設計語言編寫。(例如,Puppet必須在Ruby或他們的DSL中。然後,這些命令作為通用 JSON 模組分發。
使用本機模組,Ansible 可以配置您的基礎架構並插入 AWS、VMWare 和 Azure 等供應商。
Ansible:更原始的產品
Ansible的UI並沒有讓每個人都滿意。完整的UI版本帶有企業級Ansible Tower,但它不如Puppet介面流暢。圖形使用者介面 (GUI) 相當原始,並不總是與 CLI 同步。人們經常發現自己必須手動同步。
對編排而不是配置管理的偏見意味著腳本元件之間的語法可能會有所不同。在擴展環境中,SSH 通信可能會變得緩慢。雖然不需要代理,但根 SSH 訪問是必需的。
更廣泛地說,Ansible 是一家小公司,無法提供像 Puppet 這樣的龐然大物的支援或安心。支援更加精簡,儘管 Ansible 擁有不斷增長的全球社區,但它的開發人員和用戶社區仍然比 Puppet 小,故障排除資源也更少。與Puppet相比,Ansible的免費版本(即不是Ansible Tower)遠沒有那麼強大。
整體
如果您面臨非常複雜或長期的部署,Ansible 可能不是最佳選擇。對於大型和固定機器,更成熟的Puppet被認為是更安全的選擇。
但 Ansible 是小型、快速和/或臨時部署的絕佳選擇。遠端執行簡單,設置和擴展簡單明瞭,入職輕而易舉。您可以避免管理節點 SSL 證書的麻煩,並且管理一組 Web 伺服器是一種更流暢的體驗。Ansible 針對定期重新配置計算機的設置進行了很好的設置。通常,Ansible 更擅長配置基礎架構,應該是存儲或網路工程師的首選。
在此處閱讀內核護理團隊的更多解決方案概述:
- 我應該使用哪種配置管理工具?聚焦廚師
- 使用哪種配置管理 (CM) 工具?專注於鹽堆
- 我應該使用哪種配置管理工具?聚焦木偶
- 選擇哪種漏洞管理解決方案?專注於誇利斯
- 選擇哪種漏洞管理解決方案?專注於快速7