衆所周知,vagrant
添加 box
須要訪問國外的服務器,然而國外的服務器老是那麼的慢慢慢.....可是那個速度真的是不想吐槽。因此就有了本地添加 box
的需求,因此就有了如下的內容。json
爲何必定要強調版本號呢?若是使用過 Homestead
的朋友們,那麼你就會知道其中的酸爽。centos
如下內容徹底從零開始的,若是隻是特定問題,可直接跳過會的內容,從問題出看起。
該文章最終的目標是添加一個帶版本號的box
,效果以下:服務器
box
下載地址box
初始化一個虛擬機app
在 https://app.vagrantup.com
中有不少的 box
可供咱們下載使用,你能夠搜索你想要的 box
,我這裏使用的是 centos/7
。ide
$ vagrant init centos/7
在執行上面的目錄處會多如下文件:工具
Vagrantfile
就是vagrant
的配置文件,咱們也能夠直接配置該文件對虛擬機進行初始化。
獲取對應的 box
下載地址url
$ vagrant up
以上命令用於啓動虛擬機,若是你的PC上沒有安裝過centos/7
(能夠經過vagrant box list
命令查看是否安裝過),就會從https://vagrantcloud.com
去下載centos/7
,若是有centos/7
就會從本機獲取。
執行完上面的命令後,會出現如下內容:centos7
Bringing machine 'default' up with 'virtualbox' provider... ==> default: Box 'centos/7' could not be found. Attempting to find and install... default: Box Provider: virtualbox default: Box Version: >= 0 ==> default: Loading metadata for box 'centos/7' default: URL: https://vagrantcloud.com/centos/7 ==> default: Adding box 'centos/7' (v1809.01) for provider: virtualbox default: Downloading: https://vagrantcloud.com/centos/boxes/7/versions/1809.01/providers/virtualbox.box default: Download redirected to host: cloud.centos.org default:
注意上面的 default: Downloading ...
後面緊跟着有一個 url 地址,那個就是 centos/7
box的下載地址。spa
注意着的版本號爲:
v1809.01
,下面咱們會用到。
使用下載工具下載該 box
操作系統
做者這裏使用的是: 迅雷極速版。固然大家也可使用其餘的下載工具。
vagrant
box在vagrant
的命令中,咱們能夠知道vagrant box add [options] <name, url, or path>
這個一個命令。咱們
進入到 virtualbox.box
下載目錄,並執行如下內容:
vagrant box add centos/7 ./virtualbox.box
而後咱們使用如下命令查看:
$ vagrant box list centos/7 (virtualbox, 0)
咱們能夠看到 centos/7
已經添加到了本地,那麼這個有什麼問題呢?
問題
注意到 (virtualbox, 0)
,這個 0
就是指的版本號,這跟它真是的版本號不符。
那麼咱們該怎麼作才能添加正確的版本號呢?有兩種方案:
metadata.json
方式(推薦)。常規方案
修改(不推薦)做者使用的是win10
操做系統,對使用Mac OS
的朋友們的狀況不是很清楚。
打開 資源管理器
(俗稱個人電腦),在你的 C
盤下的用戶名下有一個 .vagrant.d/boxes
目錄,添加的 box
會加載到這來,結果以下:
這裏的 centos-VAGRANTSLASH-7
就是咱們剛纔添加的 box
,打開目錄:
這裏的 0
就是版本號,我將它修改成: 1809.01
(上面有記載),而後使用命令查看:
$ vagrant box list centos/7 (virtualbox, 1809.01)
注意到上面的版本號,就由原來的 0
變成了如今的 1809.01
。
metadata.json
方式(推薦)若是執行過
常規方案
的,使用如下方式清除box
:$ vagrant box remove centos/7
首先進入到 box
的下載目錄,新建一個文件 metadata.json
:
{ "name": "centos/7", "versions": [{ "version": "1809.01", "providers": [{ "name": "virtualbox", "url": "./virtualbox.box" }] }] }
name
添加的box名字version
:版本號providers.name
:虛擬主機類型providers.url
:box地址metadata.json
準備完成後,執行如下命令添加:
$ vagrant box add metadata.json
輸出如下結果:
==> box: Loading metadata for box 'metadata.json' box: URL: file://D:/vagrant/box/metadata.json ==> box: Adding box 'centos/7' (v1809.01) for provider: virtualbox box: Downloading: ./centos7.box box: ==> box: Successfully added box 'centos/7' (v1809.01) for 'virtualbox'!
查看添加的 box
列表:
$ vagrant box list centos/7 (virtualbox, 1809.01)
就此,整篇文檔就到此結束了,咱們總結下要領:
.vagrant.d/boxes
,並確認剛纔添加的 box
,最後進行版本修改;metadata.json
方式,注意整個 metadata.json
中不能有註釋的內容,注意各個參數的準確性。