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 于 8年前 加精
Destiny
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 11
Summer

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

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

8年前 评论
Summer

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

8年前 评论
Destiny

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

8年前 评论

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

8年前 评论
Destiny

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

8年前 评论

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

8年前 评论

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

8年前 评论
Destiny

@jalen 翻个墙试试...

8年前 评论
Summer

@luo975974740 好文章,已加精

8年前 评论
Destiny

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

8年前 评论
Destiny

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

6年前 评论