Linux上的Vagrant使用入門
譯文【51CTO.com快譯】近些年來,包括Linux在內的現代操作系統得到了發展,將操作系統虛擬化引入到普通的PC。使用虛擬機監控程序運行多個操作系統讓開發人員、系統管理員和喜歡搗鼓的人可以創建小型可分配的虛擬環境來測試和學習。
隨著虛擬化變得越來越流行,越來越多可簡化工作的軟件應運而生。Vagrant正是這類軟件之一。今天,我們將介紹在Linux上開始使用Vagrant:Vagrant是什么?如何在基本系統上安裝Vagrant?以及它有哪些用途?
Vagrant是什么?
Vagrant是一種工具,可與Virtual Box和VMware等虛擬化軟件配合使用,以提供一種簡易的方法來創建、配置和復制狀態已知的虛擬機。它便于將預配置的虛擬機或設備從Vagrant Cloud提取,初始化后在系統上運行。它使任何人拉取鏡像、運行幾個簡單命令并擁有可以搗鼓的虛擬服務器變得非常簡單。
安裝Vagrant
您可以從“下載”頁面下載Vagrant的zip文件。解壓縮后即可找到應用程序鏡像。使它可執行并運行。
或者,您可以通過發行版的代碼存儲庫來安裝它:
- Ubuntu/Debian/Ubuntu-based distros:
- sudo apt install vagrant
Fedora上:
- sudo dnf install vagrant
圖1
Vagrant可以與Hyper-V、VMWare、Parallels、VirtualBox和libvirt兼容。在本教程中,我將使用libvirt(如何配置libvirt詳見此處https://www.maketecheasier.com/create-linux-virtualization-workstation/),因為它是Linux內核中內置的虛擬機管理程序。
想安裝Vagrant libvirt提供程序,請使用以下命令之一:
- sudo apt install vagrant-libvirt
或者
- vagrant plugin install vagrant-libvirt
圖2
開啟您的第一個Vagrant設備
想啟動并運行Vagrant,您要添加一個設備,為虛擬機創建目錄,然后運行兩個Vagrant命令:一個用于初始化系統,另一個用于啟動虛擬機。
首先,為系統添加一個設備:
- vagrant box add centos/7 --provider=libvirt
確保添加作為flag的提供程序。可以在此處https://app.vagrantup.com/boxes/search找到更多的設備。
下一步,創建一個目錄并進入到該目錄:
- mkdir vagrant-test
- cd vagrant-test
現在,初始化Vagrant:
- vagrant init<em> </em>centos/7
作為初始化階段的一部分,Vagrant將在當前工作目錄中創建一個名為“Vagrantfile”的文件(比如vagrant-test1)。您可以創建任意數量的目錄并初始化Vagrant。每個目錄和Vagrantfile代表一個虛擬機。這些不同的虛擬機可以基于同一設備(比如precise32)或不同設備。
要啟動虛擬機,請運行:
- vagrant up
啟動后,虛擬機以無外設模式(沒有監視器或虛擬屏幕)運行,您只能通過SSH連接到該虛擬機。可以從您網絡上的任何其他計算機通過普通的SSH客戶端來執行該操作,也可以使用內置的ssh命令。如果您想使用另一個SSH客戶端,請注意:正確的IP地址是主機(運行Vagrant和提供程序的PC)的IP地址,但在不同的端口上。啟動過程中,Vagrant將顯示如何轉發端口22(用于SSH)。可能會轉發到端口2222。
想使用內置的ssh命令,請輸入:
- vagrant ssh
現在您已連接到虛擬機。想退出SSH連接,請輸入“exit”或按Ctrl +D組合鍵。
停止您的第一個vagrant設備
想停止運行中的虛擬機,請使用:
- vagrant ssh
想刪除虛擬機,請使用:
- vagrant destroy
銷毀該虛擬機后,基本操作系統(來自.box文件)仍存儲在Vagrant的內部,需要時可啟動其他虛擬機,無需Vagrant重新下載.box文件。
僅用兩個命令(vagrant init和vagrant up),Vagrant讓您可以啟動一個功能齊全、可通過SSH訪問的Linux虛擬機。高級配置可通過Vagrantfile來進行。可以在Vagrant說明文檔(http://docs.vagrantup.com/v2/)中找到更多詳細信息。
原文標題:Getting Started with Vagrant on Linux,作者:John Perkins
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】