vagrant 安裝


Vagrant是一款用來構建虛擬開發環境的外掛工具,可以簡化虛擬機配置和管理。它底層支持VirtualBox、VMware、AWS等,非常適合使用php/python/ruby/java語言開發web應用,“代碼在我機子上運行沒有問題”這種說辭將成為歷史。

1. 安裝VirtualBox

去官網 https://www.virtualbox.org/wiki/Downloads 下載最新版的Virtualbox,然后雙擊安裝,一直點擊確認完成。

2. 安裝Vagrant

去官網 https://www.vagrantup.com/downloads.html 下載最新版的Vagrant,然后雙擊安裝,一直點擊確認完成。在windows下安裝vagrant,為了寫入相應配置到環境變量,系統可能會要求重新啟動。在命令行中,輸入vagrant,查看程序是不是已經運行了。如果不行,請檢查一下$PATH里面是否包含vagrant所在的路徑

add box的時候默認保存在C盤用戶文件夾 C:\Users\xxx.vagrant.d,通過設置VAGRANT_HOME環境變量改變默認位置

WIN

setx VAGRANT_HOME "X:/your/path" 
setx VAGRANT_HOME "X:/your/path" /M (系統變量)

Linux

export VAGRANT_HOME='/path/to/vagrant_home'

參考

3. Vagrant命令詳解

命令 作用
vagrant box add 添加box的操作
vagrant init 初始化box的操作,會生成vagrant的配置文件Vagrantfile
vagrant up 啟動本地環境
vagrant ssh 通過ssh登錄本地環境所在虛擬機
vagrant halt 關閉本地環境
vagrant suspend 暫停本地環境
vagrant resume 恢復本地環境
vagrant reload 修改了Vagrantfile后,使之生效(相當於先 halt,再 up)
vagrant destroy 徹底移除本地環境
vagrant box list 顯示當前已經添加的box列表
vagrant box remove 刪除相應的box
vagrant package 打包命令,可以把當前的運行的虛擬機環境進行打包
vagrant plugin 用於安裝卸載插件
vagrant status 獲取當前虛擬機的狀態
vagrant global-status 顯示當前用戶Vagrant的所有環境狀態

4. 使用Vagrant安裝配置虛擬機

4.1 box是什么?

接下來,我們需要選擇使用何種操作系統,這里以centos7.2為例。以前基於虛擬機的工作流,我們需要下載ISO鏡像,安裝系統,設置系統等操作。而Vagrant開源社區提供了許多已經打包好的操作系統,我們稱之為box。你可以從box下載地址(下文列出),找到你想要的box,當然你也可以自己制作一個。

4.2 如何安裝一個box?

我們需要建立自己的開發環境目錄:

$ mkdir -p /Users/jackyue/data/vagrant/centos7

$ cd /Users/jackyue/data/vagrant/centos7

Vagrant提供在線安裝服務,非常方便,但由於偉大的GFW,我們需要先FQ把box下載到本地,然后導入安裝。box鏈接:https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box

以下是導入安裝說明:

$ vagrant box add {title} {url}

$ vagrant init {title}

$ vagrant up

vagrant box add是添加box的命令,{title}是以后創建虛擬機的別名,{url}是下載到本地box的路徑,也可以是服務器端的URL。

說明:將box鏡像添加到本地倉庫,有三種方式:

  • 使用http絕對地址
vagrant box add precises64 http://files.vagrantup.com/precise64.box
  • 使用本地文件(從協議來說,和上面一樣,相當於file:///協議的地址)
vagrant box add precises64 ./precise64.box
  • 使用倉庫名稱
vagrant box add precises64 ubuntu/precise64

這種方式,vagrant會自動在中央倉庫查找鏡像,並下載到本地鏡像庫中。

vagrant box add ubuntu/precise64

省略本地鏡像名稱,則直接用中央倉庫中的鏡像名作為本地鏡像名,這樣做的好處是可以跟倉庫中的鏡像對應。

4.3 安裝centos7 box

$ cd /Users/jackyue/data/vagrant/centos7     //找到一個目錄,作為初始化目錄

$ vagrant box add centos7 /Users/jackyue/data/vagrant/centos/centos-7.0-x86_64.box       //建議采取離線安裝,這樣有利於放置虛擬機文件到指定路徑

==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos7' (v0) for provider: 
    box: Unpacking necessary files from: file:///Users/jackyue/data/vagrant/vagrant-centos-7.2.box
==> box: Successfully added box 'centos7' (v0) for 'virtualbox'!

box中的鏡像文件被放到了/Users/jackyue/data/vagrant/.vagrant/machines/之下

4.4初始化鏡像

$ vagrant init centos7

//如果是新添加的box,必須執行本步驟,初始化一次之后,就不需要再執行本步驟

A `Vagrantfile` has been placed in this directory.
You are now ready to `vagrant up` your first virtual environment!
Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant.

初始化成功后,vagrant會在當前的初始化目錄生成一個Vagrantfile配置文件,我們可以修改它,進行個性化定制。在下一篇文章中,我們會具體講解關於Vagrantfile的配置。對於Vagrantfile文件,我們可以直接編寫,或者從網絡上拉取Vagrantfile文件后,作為虛擬機配置文件,如下:

$ mkdir -p ~/vm/coreos

$ cd ~/vm/coreos

$ git clone https://github.com/coreos/coreos-vagrant.git

4.5 啟動系統

$ vagrant up 

// 第一次開啟的時候,建議一台一台地開啟,這樣的話方便記錄映射的本地端口號

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: centos7_default_1493108555390_12825
==> default: Clearing any previously set network interfaces...

4.6 SSH連接安裝的虛擬機

經過以上操作后,我們完成了centos7虛擬機的安裝,現在需要登錄虛擬機,進行操作,有以下三種方式:

在開發環境的目錄(有Vagrantfile的地方),登錄虛擬機

$ vagrant ssh
  • 使用第三方工具,如secureCRT)或系統ssh命令進行登錄,IP為Vagrantfile中指定的hostonly地址,用戶名與密碼默認都是vagrant
  • 在宿主機的命令行,ssh到本地端口的方式登錄。觀察客戶機的22端口映射到宿主機的是多少,一般是2200或者2222,用戶名與密碼默認都是vagrant
$ ssh -p 2222 127.0.0.1

5. 打包分發

當你配置好開發環境后,退出並關閉虛擬機。在終端里,對虛擬機打包

# vagrant halt         // 在開發環境的目錄,關閉centos7

# vagrant status       // 確認centos7關機

# vagrant package centos7 --output  centos7.box  --vagrantfile Vagrantfile

// --output NAME:(可選)設置通過NAME來指定輸出的文件名;--vagrantfile FILE:(可選)將Vagrantfile直接封進box中

注:如果網絡模式中使用private_network的話,在打包之前需要清除一下private_network的設置,避免不必要的錯誤:rm -f /etc/udev/rule.d/70-persistent-net.rules

打包完成后會在當前目錄生成一個centos7.box的文件,將這個文件分發給其他用戶(開發者)。

其他用戶只要添加這個 box ,並用其初始化自己的開發目錄,就能得到一個一模一樣的開發環境了。

# vagrant box add centos7 centos7.box       

//添加package.box,鏡像命名為centos7

$ vagrant init centos7      

// 初始化centos7鏡像

$ vagrant up


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM