vagrant 安裝

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

1. 安裝VirtualBox

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

2. 安裝Vagrant

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

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

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,固然你也能夠本身製做一個。git

4.2 如何安裝一個box?

咱們須要創建本身的開發環境目錄:es6

$ 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.boxgithub

如下是導入安裝說明:web

$ vagrant box add {title} {url}

$ vagrant init {title}

$ vagrant up

vagrant box add是添加box的命令,{title}是之後建立虛擬機的別名,{url}是下載到本地box的路徑,也能夠是服務器端的URL。ubuntu

說明:將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
相關文章
相關標籤/搜索