简介
Vagrant 是一个基于 Ruby 的工具,用于创建和部署虚拟化开发环境。它使用 Oracle 的开源 VirtualBox 虚拟化系统,使用 Chef 创建自动化虚拟环境。Vagrant可以将你的配置独立在一个可部署环境中,让其他人方便使用
准备
- vagrant https://www.vagrantup.com/downloads.html 下载 vagrant_1.9.6.msi
- Virtual Box https://www.virtualbox.org/wiki/Download_Old_Builds_5_0 下载 VirtualBox-5.0.40-115130-Win.exe
- box文件 centos65-x86_64-20140116.box
安装
-
安装 vagrant
-
安装 virtual box 建议安装4.3.12版本,自版本4.3.12后启动虚拟机会存在各种问题,最新版本未验证. 安装完成后,建议把默认虚拟位置修改下:
使用 Vagrant
> 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相关可以去扩展阅读部分找
启动环境
vagrant up
启动成功后,界面会显示ssh 相关信息,如上图 使用ssh工具(SecureCRT,Xshell)登录进去 用户名/密码:vagrant/vagrant
配置 Vagrantfile
下面常用几个配置
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才能生效
vagrant 命令
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
vagarnt 打包
vagrant package --output team.box # 把当前环境打包成box
vagrant package --output team.box --vagrantfile Vagrantfile # 带上配置打包
box完成后就可以给其它小伙伴用了
vagrant provision
provision任务是预先设置的一些操作指令,格式
config.vm.provision "shell", path: "centos67.sh"
只有在这三种情况下provision才会运行
- 首次执行vagrant up会自己运行
- 执行vagrant provision时
- 执行vagrant reload --provision时
问题和扩展阅读
- VirtualBox在WIN7 X64使用出现的以下问题:Unable to load R3 module,可以下载 恢复系统主题(win7X64).zip
运行 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
来源:oschina
链接:https://my.oschina.net/u/25536/blog/610422