有時我需要重現僅出現在客戶環境中的問題。我可以手動設定虛擬機器以充分鏡像其環境,但如果能找到一種半自動化的方法來執行此操作,那就太好了。
換句話說,我正在尋找一些可以讓我說「創建一個運行此版本的 Linux 的環境,安裝此版本的 PHP」的東西,等等。然後我希望能夠登入那個環境並執行重現步驟。
這些環境顯然是相對短暫的,因為一旦我重現了該特定問題,我就有可能永遠不必再次重新創建相同的環境。也就是說,如果環境配置採用易於版本控制的格式,那就太好了,以防再次需要它。
是否有適合此類用例的技術?
我聽說過的可能相關的事情
- Proxmox(看起來殺傷力太大,而且本身還不夠)
- Vagrant(本身可能不夠,可能還需要像 Ansible 這樣的設定管理)
- Docker(通常用於運行單一應用程序,而不是重新建立完整的作業系統環境)
這些是否適合該用例?我應該考慮其他選擇嗎?
答案1
我過去幾乎使用 docker 來完成此任務,並且它運行得非常完美。我建議您研究一下,但您最好在軟體推薦 StackExchange 上提出這個問題。
答案2
在了解到 Vagrant 還可以使用 shell 腳本配置機器後,我最終選擇了 Vagrant:https://www.vagrantup.com/intro/getting-started/provisioning.html
這似乎是實現我想要的目標的最省力的方法,快速設定一個與我自己的環境分開的臨時特定環境,並使用可以進行版本控制的簡單的基於文字的配置。