Windows 下使用 Vagrant 构建 Linux 开发环境

什么是 Vagrant

Vagrant 是一个简单易用的部署工具,用英文说应该是 Orchestration Tool 。它能帮助开发人员迅速的构建一个开发环境,帮助测试人员构建测试环境, Vagrant 基于 Ruby 开发,使用开源 VirtualBox 作为虚拟化支持,可以轻松的跨平台部署。

通俗的来说, 就是在本地部署一个和 Linux 虚拟机上的同步文件夹, 这样所有的操作都方便了许多

准备工作

部署环境

  1. 进入工作文件夹中
    file

  2. 把下载的 box 镜像包放到工作目录下-这里我以 Ubuntu.14.04 为例
    file

  3. 打开终端进入工作目录, 或者你可以在当前目录按住 shift+鼠标右键 可快速打开当前目录的终端
    file

  4. 我们执行 vagrant box list 可查看当前添加进 vagrant 的镜像

  5. *如果没有添加 box 镜像, 我们执行 vagrant box add 系统名字 box镜像 *
    file

  6. 这时候我们执行 vagrant box list 就可以查看我们添加的 box 镜像
    file

  7. ** box 镜像添加到 vagrant 里面后我们就可以执行 vagrant init 系统名 初始化, 初始成功后我们可以看见当前工作目录下会生成一个 Vagrantfile 的配置文件**
    file

  8. *因为我们虚拟机默认只分配一个访问外网的 IP, 项目使用的 IP 得手动设置打开 Vagrantfile 找到29行(我的配置文件在29行)设置一个私有 IP *
    file

  9. 到这里所有配置工作都完成了, 我们可以 vagrant up 正式启动了, 启动成功后会在当前目录生成一个 .vagrant 的隐藏文件夹
    file

  10. 在工作目录中, 使用了 vagrant up 命令, 我们虚拟机会自动的帮我们配置一个系统, 然后自动后台启动, 以后都无须管理虚拟机 让虚拟机在后台玩儿去吧
    file

  11. 我们可以在当前目录使用 vagrant ssh 直接连接到虚拟机里面, 也可以使用第三方工具进行连接如 Putty, Xshell, IP 为我们刚刚在 Vagrantfile 配置文件中设置的私有 IP
    file

    特别注意: 如果是第三方工具连接, 用户名和密码都是 vagrant

  12. 虚拟机里面的 /vagrant 这个文件夹是和我们本地同步的文件夹
    file

  13. 下面我们就来看看vagrant神奇的地方, 我们在 /vagrant 同步文件夹里面创建一个文件 a, 看看我们本地发生了什么….., 同样我们在本地把这个 a 文件删除, 看看虚拟机里面发生了什么…
    file

  14. 这样我们以后从服务器拉取下来的项目, 就可以直接在同步文件夹操作, 操作本地文件, 就相当于操作虚拟机, 目前已经有很多大型公司使用 vagrant, 因为这可以提升他们的开发效率

最后附上vagrant一些常用的命令, 希望这能帮助你们, 别忘记点赞哟!

  • $ vagrant box add NAME URL #添加一个box
  • $ vagrant box list #查看本地已添加的box
  • $ vagrant box remove NAME virtualbox #删除本地已添加的box,如若是版本1.0.x,执行$ vagrant box remove NAME
  • $ vagrant init NAME #初始化,实质应是创建Vagrantfile文件
  • $ vagrant up #启动虚拟机
  • $ vagrant halt #关闭虚拟机
  • $ vagrant destroy #销毁虚拟机
  • $ vagrant reload #重启虚拟机
  • $ vagrant package #当前正在运行的VirtualBox虚拟环境打包成一个可重复使用的box
  • $ vagrant ssh #进入虚拟环境

PS

感谢关注「GitHub 热门」公众号,带你了解技术圈内热门新鲜事!

file

本作品采用《CC 协议》,转载必须注明作者和本文链接
感谢关注「GitHub 热门」公众号
本帖由 Summer 于 4年前 加精
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 11
Summer

标题不通顺,还得再优化下。

作为一个优秀的开发者,中英文排版要遵循 中文文案排版指北

4年前 评论
Summer

今天看你记了好多文章,相信你会很快变强的,加油 :punch:

4年前 评论
Destiny

@Summer 龙哥,,,我知道了, 感动........

4年前 评论

虽然和docker应用场景不一样,但我是完全用的docker

4年前 评论
Destiny

@我以前不是有账号吗 ............

4年前 评论

@我以前不是有账号吗
请问docker部署这个有教材吗?

4年前 评论

唯一的问题就是镜像下载太TM慢了 :smirk:

4年前 评论
Destiny

@jalen 翻个墙试试...

4年前 评论
Summer

@luo975974740 好文章,已加精

4年前 评论
Destiny

@Summer 哈哈哈...感谢..

4年前 评论
Destiny

推荐使用 homestead :《Laravel 开发环境部署》

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!