玩轉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,你說你不知道?別逗我了。
到此。環境移植成功。