1. 程式人生 > >玩轉Vagrant之工作環境的遷移(box的匯入與匯出)

玩轉Vagrant之工作環境的遷移(box的匯入與匯出)

一、匯出篇

首先,大家知道,vagrant的執行是依託於VirtualBox這個虛擬機器軟體的,那麼我們首先找到VirtualBox的安裝位置,我的VirtualBox安裝在E:\Program Files\Oracle\VirtualBox,這個目錄下,我們使用cmd(注意是CMD,是CMD,是CMD,重要的話說三遍)進入這個目錄,執行命令

vboxmanage list vms

列表展示已經安裝的虛擬機器

E:\Program Files\Oracle\VirtualBox>vboxmanage list vms
"Homestead_default_1532415196058_37119" {128e3b3f-b273-4508-be43-d11c4ce07797}
"vm" {bcc07fd8-f507-4be8-9c58-6a4917600009}
"Homestead_default_1537678496461_36155" {e25cc5f7-1173-485f-921b-87dc0b0057f6}
"workspace_default_1539839845107_93161" {c11f6b12-36f1-4695-817e-448137e1bfa4}

我的虛擬機器名字是workspace_default_1539839845107_93161。

進入到你的vagrant安裝目錄,我安裝在E:\workspace,而且是用Git命令視窗開啟的(個人習慣問題,不用糾結,你也可以用cmd)。

vagrant package --base workspace_default_1539839845107_93161 --output 你定義的別名

至此,打包完畢。你的工作環境至此完全匯出。

二、匯入篇

你來到了另一臺電腦,你想把你的工作環境完全的copy一份到這臺電腦,接下來就很關鍵了。

1.建立一個你要的工作目錄,我的是E:\workspace,把公共打好的包放進來

2.在這個目錄下開啟Git視窗,輸入

vagrant box add 你自定義的別名 包名

3.初始化工作環境

vagrant init

發現你的資料夾中自動生成了一個檔案,Vagrantfile。

4.由於你是直接引入自己打的包,而不是vagrant官方提供的包,所以有可能存在一些問題。我們通過編輯Vagrantfile來解決。

在Vagrantfile中的“config.vm.box”這一行下,加上這三句

config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
config.ssh.insert_key = false

由於vagrant預設使用private_key登入,此時你有很大的可能是沒有private_key的,我們直接改成使用者名稱+密碼登入,反正工作環境是你自己的,你想用它做什麼逆天的操作嗎?

5.設定ip,

config.vm.network "private_network", ip: "192.168.2.166"

6.設定檔案對映,

config.vm.synced_folder "../workspace", "/media/raid10/htdocs"

左邊資料夾是你的windows工作目錄名,右邊是linux對應的目錄名。如果你不加上這一句。會對映到linux根目錄下的vagrant資料夾哦。

7.設定記憶體

config.vm.provider "virtualbox" do |vb|
     vb.memory = "2048"
end

設定2G空間,由於我配置的是多版本php並行的虛擬機器環境,需要空間大一點,就給2G,如果你對空間沒要求,可以跳過這一步。

8.啟動vagrant

vagrant up

應該是正常啟動了,如果你不能正常啟動,我也沒辦法,自行百度,Google,解決辦法一大堆。

9.測試shell能不能連上,

我的可以。

至於怎麼設定shell,看第4步,你現在有使用者名稱,密碼和ip,你說你不知道?別逗我了。

到此。環境移植成功。