Chef

Vagrant、Docker、Chef 和 OpenStack(或類似產品)之間的關係?

  • March 13, 2018

我是一名網路開發人員,但我也對一些管理任務感興趣。因此,從純管理到開發運維的新舉措對我來說很方便。

無論如何,我有一些問題要把一些事情放到一段關係中。也許沒有,所以我想尋求幫助以澄清。

基本上,我想介紹的是四種類型的軟體(根據我的理解)。確切的產品並不重要,您可以放置​​任何類似的軟體作為替代:

  • Vagrant:據我了解,虛擬機的創建和管理是自動化的:設置、啟動和停止它們。這可以使用本地虛擬機或遠端虛擬機來完成,例如在雲平台上。
  • Docker:一種“輕量級 VM”,基於一些 Linux 核心概念,可用於獨立執行程序,例如在共享 Web 託管環境中。
  • Chef:設置和配置作業系統的工具,例如在 VM 內部。
  • OpenStack:一種允許您建構自己的私有云的工具,因此可以與 AWS 等工具相媲美。

問題#1:我的解釋是正確的,還是我對這些消費中的一些(或全部)錯誤?

問題 #2:我怎樣才能混合使用所有這些工具?這有什麼意義嗎?

在我的想像和我的理解中,你可以去

  • 使用 OpenStack 建構您自己的雲,
  • 使用 Vagrant 管理在雲中執行的虛擬機,
  • 使用 Chef 設置這些虛擬機
  • 最後使用 Docker 在虛擬機中執行程序。

它是否正確?如果是這樣,你能給我一個關於如何開始使用所有這些的建議(同時很多,我還不知道從哪裡開始)?

讓我們使用他們各自的網頁來找出所有這些項目的內容。不過,我會更改您列出的順序:

  • Chef:Chef 是一個將基礎設施轉換為程式碼的自動化平台。

這是一個配置管理軟體。它們中的大多數使用相同的範例:它們允許您定義您希望機器處於的狀態,包括配置文件、安裝的軟體、使用者、組和許多其他資源類型。它們中的大多數還提供將更改推送到特定機器的功能,這個過程通常稱為編排

  • Vagrant:創建和配置輕量級、可重現和可移植的開發環境。

它提供了一種使用 Oracle 的 VirtualBox 或 VMWare 技術作為提供者來生成完全虛擬化機器的可重現方式。Vagrant 可以與配置管理軟體協調以在作業系統安裝程序完成的位置繼續安裝過程。這稱為配置

  • Docker : 一個開源項目,可將任何應用程序打包、發布和執行為輕量級容器

該軟體的功能與 Vagrant 的功能有些重疊,後者提供了定義作業系統安裝的方法,但用於此目的的技術卻大不相同。Docker 使用Linux 容器,它們本身不是虛擬機,而是執行在獨立文件系統中的獨立程序。Docker 還可以使用配置管理系統來配置容器。

  • OpenStack:用於建構私有云和公共雲的開源軟體。

雖然 OpenStack 確實可以部署在單台機器上,但這種部署純粹是為了概念驗證,由於資源限制,可能不是很實用。

OpenStack 安裝的主要目標是裸機多節點環境,其中不同的組件可以在專用硬體中使用以獲得更好的結果。

OpenStack 的一個關鍵功能是它支持許多虛擬化技術,從完全虛擬化(VirtualBox、VMWare)到半虛擬化(KVM/Qemu)以及容器(LXC)甚至使用者模式 Linux(UML)

我試圖將這些產品呈現為特定架構的組件。從我的角度來看,首先能夠根據您需要的環境(Chef、Puppet、Ansible 等)定義您的需求,然後能夠以受控方式部署它(Vagrant、Docker , …),如果需要,最後將其擴展到全域大小。

你需要多少這些功能應該在你的項目範圍內定義。

另請注意,我過度簡化了大部分技術解釋。請使用參考連結獲取詳細資訊。

引用自:https://serverfault.com/questions/538466