Vagrant 是一個基於 Ruby 的工具,用於建立和部署虛擬化開發環境。它使用 Oracle 的開源 VirtualBox 虛擬化系統,使用 Chef 建立自動化虛擬環境。Vagrant能夠將你的配置獨立在一個可部署環境中,讓其餘人方便使用php
安裝 vagranthtml
安裝 virtual box 建議安裝4.3.12版本,自版本4.3.12後啓動虛擬機會存在各類問題,最新版本未驗證. 安裝完成後,建議把默認虛擬位置修改下: node
> mkdir work > cd work > vagrant init mysystem > vagrant box add mysystem f:\centos64-x86_64-20140116.box 或者 > vagrant box add mysystem https://xxxxxxx/centos64-x86_64-20140116.box
init 是初始化環境,會在當前目錄增長一個_Vagrantfile_ 配置文件 mysystem 是自定義的名字,Vagrant 支持從本地文件系統或者HTTP URL來添加boxes.URL相關能夠去擴展閱讀部分找git
啓動環境github
vagrant up
啓動成功後,界面會顯示ssh 相關信息,如上圖 使用ssh工具(SecureCRT,Xshell)登陸進去 用戶名/密碼:vagrant/vagrantshell
下面經常使用幾個配置centos
Vagrant.configure(2) do |config| config.vm.hostname = "phphost" #hostname設置 config.vm.box = "mysystem" #box設置 config.vm.box_check_update = false #box自動更新設置 config.vm.network "forwarded_port", guest: 80, host: 8080 #端口轉發 # config.vm.network "private_network", ip: "192.168.33.10" #網絡設置 config.vm.network "public_network" config.vm.synced_folder "f:/www", "/vagrant_data" #同步目錄設置 config.vm.provider "virtualbox" do |vb| # vb.gui = true #開啓VirtualBox界面 能夠在出錯的狀況下查看啓動狀況 vb.memory = "512" #內存設置 vb.cpus = 1 #cpu數量 end end
注意修改完Vagrantfile任意配置後,須要reload才能生效ruby
vagrant -h #列出全部幫助信息 vagrant init # 初始化 vagrant up # 啓動虛擬機 vagrant halt # 關閉虛擬機 vagrant suspend # 休眠虛擬機 vagrant resume # 恢復休眠虛擬機 vagrant reload # 重啓虛擬機 vagrant ssh # SSH 至虛擬機 vagrant ssh-config # ssh 鏈接信息 vagrant status # 虛擬機運行狀態 vagrant destroy # 銷燬當前虛擬機 vagrant package # 打包
更詳細的英文文檔 http://docs.vagrantup.com/v2/cli/index.html網絡
vagrant package --output team.box # 把當前環境打包成box vagrant package --output team.box --vagrantfile Vagrantfile # 帶上配置打包
box完成後就能夠給其它小夥伴用了ssh
provision任務是預先設置的一些操做指令,格式
config.vm.provision "shell", path: "centos67.sh"
只有在這三種狀況下provision纔會運行
運行 vagrant up 時出現:
Failed to mount folders in Linux guest. This is usually because the 「vboxsf」 file system is not available. Please verify that the guest additions are properly installed in the guest and can work properly.
vagrant plugin install vagrant-vbguest vagrant reload