Ubuntu系統(tǒng)中部署Vagrant和VirtualBox的圖文教程
一、前言
1.Vagrant是一個搭建完整的虛擬開發(fā)環(huán)境的工具
2.實(shí)驗(yàn)環(huán)境
在Win10中利用VMWare Workstation創(chuàng)建一臺Ubuntu虛擬機(jī),版本為64位Ubuntu Desktop 16.04,4核,4G內(nèi)存;然后在Ubuntu中安裝Vagrant和VirtualBox,所用到的Vagrant和VirtualBox版本都是截至2018/04/08時候的最新版。
之所以使用VMWare Workstation來創(chuàng)建Ubuntu的虛擬機(jī)而不是VirtualBox,跟下面即將說到的“ubuntu的CPU必須要支持虛擬化”有關(guān),因?yàn)樵赩irtualBox中我不知道怎么設(shè)置才能使得創(chuàng)建的ubuntu的CPU支持虛擬化,而在VMWare Workstation中,可以通過如下方法進(jìn)行開啟。
3.關(guān)鍵點(diǎn)
因?yàn)槲覀兯龅牟僮魇恰霸赨buntu中利用Vagrant+VirtualBox創(chuàng)建虛擬機(jī)”,因此,ubuntu的CPU必須要支持虛擬化才行——注意,是Ubuntu的CPU,不是本機(jī)Windows。
一般我們要在筆記本電腦上利用VMWare Workstation或者VirtualBox來創(chuàng)建虛擬機(jī)時,是需要筆記本的CPU支持虛擬化的,通常筆記本的CPU都支持虛擬化,只需在筆記本電腦開機(jī)時進(jìn)入BIOS進(jìn)行設(shè)置開啟即可。而這里因?yàn)橐趗buntu中創(chuàng)建虛擬機(jī),因此需要ubuntu的CPU支持虛擬化。
如果你的ubuntu系統(tǒng)不支持CUP虛擬化,那么就沒必要按下面步驟進(jìn)行安裝了,因?yàn)橐欢〞?,必須要將ubuntu的CUP設(shè)置成支持虛擬化。
在Ubuntu中可以通過下面的方法驗(yàn)證CPU是否支持虛擬化
查詢實(shí)驗(yàn)時的虛擬機(jī):
4.提前列一下接下來可能會用到的vagrant命令
$ vagrant init # 初始化,用法:vagrant init 已有的box名稱
$ vagrant up # 啟動虛擬機(jī),對應(yīng)就是關(guān)機(jī)
$ vagrant halt # 關(guān)閉虛擬機(jī)
$ vagrant reload # 重啟虛擬機(jī)
$ vagrant ssh # SSH 至虛擬機(jī)
$ vagrant suspend # 掛起虛擬機(jī)——只是暫停,虛擬機(jī)內(nèi)存等信息將以狀態(tài)文件的方式保存在本地,可以執(zhí)行恢復(fù)操作后繼續(xù)使用
$ vagrant resume # 喚醒虛擬機(jī)—— 與前面的暫停相對應(yīng)
$ vagrant status # 查看虛擬機(jī)運(yùn)行狀態(tài)
$ vagrant destroy # 銷毀當(dāng)前虛擬機(jī),刪除后在當(dāng)前虛擬機(jī)所做進(jìn)行的除開Vagrantfile中的配置都不會保留
#box管理命令
$ vagrant box list # 查看本地box列表
$ vagrant box add
# 添加box到列表,用法:vagrant box add 按需起的box名稱 box所在url或者本地路徑
$ vagrant box remove
# 從box列表移除,用法:vagrant box remove 你的box名稱
5.安裝之前最后一點(diǎn)——在我初次安裝時因?yàn)閡buntu的CPU不支持虛擬化,我又沒注意到這點(diǎn),因此安裝過程中遇到了一些錯誤,放在文章末尾了,有一定的參考意義。
二、安裝步驟
1、安裝Virtualbox
1.1安裝之前先安裝virtualbox的依賴包,否則會有依賴包報錯
命令:sudo apt-get install -y libsdl1.2debian
1.2安裝VirtualBox
我看其他教程有使用apt-get install命令安裝virtualbox的,我有試過,不過該命令安裝的不是最新版,所以我采取的辦法是先上網(wǎng)把virtualbox下載下來,然后上傳到ubuntu當(dāng)中(上傳到任意目錄),接著切換到virtualbox包所在目錄,執(zhí)行:
sudo dpkg -i virtualbox-5.2_5.2.8-121009-Ubuntu-xenial_amd64.deb
因?yàn)槲乙呀?jīng)安裝過virtualbox所需依賴包了,所以安裝過程沒有報錯,假若你安裝的時候報錯了,則將所需依賴包使用apt-get install命令進(jìn)行安裝,之后再次安裝virtualbox即可。
1.3安裝完成之后使用virtualbox --help命令進(jìn)行檢查
如下圖,輸出virtualbox幫助信息,說明virtualbox安裝成功
2、vagrant是ruby開發(fā)的,先安裝ruby相關(guān)的東西
命令:sudo apt-get -y install ruby rubygems
注:我不知道這一步是否必須,我看個別教程里面有的安裝了,有的沒有,反正我是跟著做了。。。
3、在Vagrant官網(wǎng)下載Vagrant的deb軟件包
下載命令:sudo wget https://releases.hashicorp.com/vagrant/2.0.3/vagrant_2.0.3_x86_64.deb
安裝命令:sudo dpkg -i vagrant_2.0.3_x86_64.deb
安裝完成使用vagrant --version進(jìn)行檢查,如上圖。
也可以直接使用apt-get安裝,命令:sudo apt-get install vagrant
。
不過同樣的,apt-get命令安裝的不是最新版本。
4、下載官方封裝好的基礎(chǔ)鏡像放到合適的目錄里面,是一個格式為box的文件,地址:http://www.vagrantbox.es/,可以在ubuntu中使用wget命令下載,也可以再本地Windows上下載下來,然后上傳到ubuntu里面。
官網(wǎng)界面:
我下載的box鏡像:
5.創(chuàng)建一個開發(fā)目錄,并切換到該目錄下
命令:
sudo mkdir vagrant_project cd vagrant_project/
注:創(chuàng)建該目錄是用來存放vagrant配置文件的,因此下面第7步的初始化步驟必須在該目錄下執(zhí)行,vagrant才會默認(rèn)把Vagrantfile配置文件放在該目錄下;創(chuàng)建的目錄名稱是隨意的,沒有特定要求。
6、添加鏡像到 Vagrant
命令:sudo vagrant box add ubuntu1604 /data/ios/centos-7.0-x86_64.box
注:這里我添加的鏡像是centos-7.0-x86_64.box,但是我給它起的名字卻是ubuntu1604,是因?yàn)橐粫r手殘了,名字其實(shí)可以根據(jù)喜好隨便起,沒影響
執(zhí)行完之后使用sudo vagrant box list查看添加的鏡像是否存在,如上圖。
7、初始化開發(fā)環(huán)境
命令:sudo vagrant init ubuntu1604
注:“ubuntu1604”是上一步添加鏡像時所起的名字;且這一步初始化操作必須在第5步創(chuàng)建的開發(fā)目錄中執(zhí)行,否則你創(chuàng)建的目錄就沒用了;最后,初始化成功后會生成配置文件Vagrantfile
8、啟動虛擬機(jī)
在第5步創(chuàng)建的工作目錄下執(zhí)行下面命令進(jìn)行啟動虛擬機(jī)
命令:sudo vagrant up
(1)由輸出來看啟動沒有問題
(2)注意上圖的最后一行:vagrant默認(rèn)把創(chuàng)建的虛擬機(jī)的/vagrant目錄映射到ubuntu的/home/suxy/vagrant_project目錄上了(/home/suxy/vagrant_project就是第5步創(chuàng)建的開發(fā)目錄)——這樣一來,這兩個目錄之間是共享的。
(3)Vagrant默認(rèn)創(chuàng)建的虛擬機(jī)賬號密碼為:vagrant/vagrant
(4)如果這一步執(zhí)行vagrant up失敗了,在修改完錯誤之后再次啟動虛擬機(jī)前,需要先執(zhí)行vagrant halt停止虛擬機(jī)、vagrant destroy銷毀虛擬機(jī)。
9.驗(yàn)證
使用sudo vagrant ssh命令連接vagrant創(chuàng)建的虛擬機(jī)
若還有其他個性化的設(shè)置,可參考文章頭提到的博文。
三、部署時遇到的錯誤
(1)錯誤一:這里所列舉的錯誤是在ubuntu的CPU不支持虛擬化的情況下執(zhí)行第8步啟動虛擬機(jī)時所報的錯誤,如下
錯誤解決可查看:https://www.cnblogs.com/csliwei/p/5860005.html
根據(jù)博文中的說法,如果是下載的box文件(我操作時確實(shí)是下載的box文件),vagrant box add和init之后啟動,可能出現(xiàn)長時間無法通過vagrant ssh登陸的問題
說是有兩種可能
(1)其一是虛擬機(jī)確實(shí)啟動失敗,由于vagrant默認(rèn)不顯示虛機(jī)啟動界面,所以不太好判斷。因此需要在Vagrantfile配置中增加vb.gui = true選項(xiàng),就可以查看虛機(jī)的啟動過程(我的理解是加上該選項(xiàng)之后,可以使得在vagrant up啟動虛擬機(jī)的時候顯示virtualbox啟動界面,以便查看是否是PC的vt-x支持沒有開啟)。常見問題是沒有開啟PC的vt-x支持,進(jìn)BIOS修改配置即可。
(2)其二是如果使用拷貝過來的Vagrantfile進(jìn)行up啟動
可能會由于ssh認(rèn)證機(jī)制導(dǎo)致失敗。vagrant默認(rèn)采用key登錄,但所用的KeyPair可能沒有正常配置。
于是先對第一種可能的錯誤進(jìn)行驗(yàn)證
在Vagrantfile文件中加入:
config.vm.provider :virtualbox do |vb|
vb.gui = true
end
如下:
因?yàn)榍懊鎴?zhí)行vagrant up失敗了,所以先執(zhí)行vagrant halt停止虛擬機(jī)、vagrant destroy銷毀虛擬機(jī)
接著使用sudo vagrant up
命令再次啟動虛擬機(jī),果然再次出錯了,不過因?yàn)樵赩agrantfile配置中增加vb.gui = true選項(xiàng),所以這次報錯時virtualbox的報錯也顯示出來了,如下圖——果然是因?yàn)镃UP不支持虛擬化的緣故
為了確認(rèn)是否Ubuntu的CPU確實(shí)不支持虛擬化,通過下圖中所說的方法查看
實(shí)際查詢?nèi)缦聢D:
果然。。。
(2)錯誤二:在ubuntu的CPU支持虛擬化的情況下執(zhí)行第8步啟動虛擬機(jī)時出現(xiàn)的問題
正如上圖紅框中所說的,使用的box鏡像可能有問題,因此我換了Centos的box進(jìn)行,之后安裝成功。
總結(jié)
以上所述是小編給大家介紹的Ubuntu系統(tǒng)中部署Vagrant和VirtualBox的圖文教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Linux網(wǎng)絡(luò)服務(wù)器配置入門(二)
Linux網(wǎng)絡(luò)服務(wù)器配置入門(二)...2006-10-10linux 系統(tǒng)調(diào)用與標(biāo)準(zhǔn)庫調(diào)用的區(qū)別詳細(xì)解析
以下是對linux中系統(tǒng)調(diào)用與標(biāo)準(zhǔn)庫調(diào)用的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-08-08ubuntu 14.04 oracle 11g 64位數(shù)據(jù)庫安裝圖文教程
這篇文章主要介紹了ubuntu 14.04 oracle 11g 64位數(shù)據(jù)庫安裝圖文教程,需要的朋友可以參考下2017-05-05關(guān)于Linux服務(wù)器磁盤空間占滿問題的解決方法
下面給大家分享一篇關(guān)于Linux服務(wù)器磁盤占滿問題解決方法(/dev/sda3 滿了),需要的的朋友參考下吧2017-05-05ubuntu16.04登錄后無dash,無啟動欄launch,無menu bar只有桌面背景的快速解決辦法
今天打開電腦,與往常一樣輸入用戶名密碼登錄后,發(fā)現(xiàn)桌面上空空如也,啟動欄launch,menu bar什么的都消失了,桌面上文件可以打開,但是無法拖動位置,無法關(guān)閉,下面給大家分享ubuntu16.04登錄后無dash,無啟動欄launch,無menu bar只有桌面背景解決辦法2017-04-04