使用 Vagrant 的目的

1、建立一致的開發環境

例如 Laravel 的 Homestead,可以讓 mac 和 win 系統的開發人員,在程式開發時期,能有一致的開發環境。

2、練習不同的作業系統及網路服務管理

在沒有這一類的虛擬機器管理工具之前,就只能在多台電腦安裝作業系統,使用 Vagrant + VirtualBox,可以在同一台電腦內,模擬多台系統進行測試。

相關程式安裝

1、安裝 VirtualBox

VirtualBox 官方網站
Vagrant 其實是需要依附在虛擬機器程式,可以是 VirtualBox ,也可以是其他的程式。Vagrant 只是提供了一些好用的指令來方便我們管理我們的虛擬機器。所以我們得先安裝 VirtualBox

2、安裝 Vagrant

Vagrant 官方網站

系統影像檔(box)安裝

Vagrant Cloud 上有很多不同用途的系統影像檔可以使用。我們可以透過以下指令來下載系統影像檔:

# 用法:vagrant box add {BoxName}
# 例如我們要安裝 CentOS 7 的系統影像檔
vagrant box add centos/7

下載完後,系統影像檔會放在 使用者目錄下的 .vagrant.d/boxes/centos-VAGRANTSLASH-7/

Vagrant 設定檔

vagrant 的設定檔是以 box 為基礎,我們先建一個目錄,再執行 vagrant init 指令來產生基本的設定檔。

# 我們針對前述所下載的 centos/7 來建立其設定檔
mkdir vagrant_centos7
cd vagrant_centos7
vagrant init centos/7

這樣我們就可以自動產生 centos/7 這個 box 的設定檔。

常用的 vagrant 指令

啟動系統影像 (開機)

cd vagrant_centos
vagrant up

請注意,一定要在設定檔目錄下執行指令,才可以啟動其對映的系統影像 (此例中為啟動 centos/7 這個影像檔)。

第一次啟動系統影像時,vagrant 會把下載的 box ,匯入到 VirtualBox 的影像目錄 (VirtualBox VMs) 下,所以會花一點時間。

注意!!大部分的 vagrant 都需要在設定檔目錄下執行才會正確的作用!

查看系統狀態

vagrant status

你也可以直接開啟 VirtualBox 的程式,來查看目前所開啟的虛擬機器有那些。

關閉系統影像 (關機)

vagrant halt

請注意,一定要在設定檔目錄下執行指令,才可以關閉其對映的系統影像,如果不小心在別的設定檔目錄下執行,就會關到其他的系統影像。

使用 ssh 連到虛擬機器

vagrant ssh

重新讀入設定

# 當我們有修改設定時,必須執行
vagrant reload

查看所有下載的系統影像檔

vagrant box list

將目前使用的環境匯出成系統影像檔(box)

vagrant package

這會將設定檔目錄所關聯的虛擬機器,匯出成名為 package.box 系統影像檔,放置於設定檔目錄中。程式開發團隊的其他人員,可以直接將這個 box 檔案匯入到自己的電腦裏,讓大家有一致的開發環境,Laravel 這個 PHP 框架就是這麼做的;有興趣的人,可以參考 Laravel Homestead

參考資料

Vagrant 官方說明文件

http://gogojimmy.net/2013/05/26/vagrant-tutorial/

Last modified: 2019-08-18

Author

Comments

Write a Reply or Comment

Your email address will not be published.