Vagrant 打造跨平台开发环境

最后都变了- 提交于 2019-12-01 20:54:26

简介

Vagrant 是一个基于 Ruby 的工具,用于创建和部署虚拟化开发环境。它使用 Oracle 的开源 VirtualBox 虚拟化系统,使用 Chef 创建自动化虚拟环境。Vagrant可以将你的配置独立在一个可部署环境中,让其他人方便使用

准备

  1. vagrant https://www.vagrantup.com/downloads.html 下载 vagrant_1.9.6.msi
  2. Virtual Box https://www.virtualbox.org/wiki/Download_Old_Builds_5_0 下载 VirtualBox-5.0.40-115130-Win.exe
  3. box文件 centos65-x86_64-20140116.box

安装

  1. 安装 vagrant

    输入图片说明

  2. 安装 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时

问题和扩展阅读

运行 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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!