使用vagrant快速搭建开发环境

使用vagrant快速搭建开发环境

vagrant官方的口号是
Development Environments Made Easy
顾名思义,vagrant是一款能够快速搭建开发环境的工具。

我们在开发中经常遇到这样的问题,在windows平台上使用ide开发的程序,当部署到linux生产环境时总是会出现这样那样的问题,导致程序出错。或者你开发的程序在你本地的环境中运行一切正常,当另一个人在他那里运行确出现各种bug。为了使每个人的开发环境一致,或使我们的开发环境更接近生产环境,甚至于和生产环境一致(当然这个Docker更适合)。vagrant就为了解决这些问题应运而生了。


安装vagrant及virtualBox

下载vagrant和virtualBox
vagrant可以在官网首页,点击download下载

下载地址 https://www.vagrantup.com/

在以下virtualBox官网地址下载

下载地址 https://www.virtualbox.org/wiki/Downloads

使用默认安装配置,点击下一步下一步安装即可。
安装完成后,打开cmd,输入vagrant -v,测试是否安装成功。

C:\Users\peter>vagrant -v
Vagrant 2.0.0

使用vagrant快速搭建开发环境

首先我们需要初始化一个box.

所谓box,就是vagrant管理的虚拟机的一个打包好的开发环境镜像。里面有各种开发需要的环境,比如maven/数据库/nodejs等,甚至是hadoop。

初始化一个box
打开cmd输入

C:\Users\peter>cd C:\vagrant_test
C:\vagrant_test>vagrant init ubuntu/trusty64

这个操作将会在C:\vagrant_test目录下,从官方box下载地址下下载trusty64镜像,并初始化到你本地。
由于下载网址是国外的网址,可能会出问题,我们可以去以下网址直接下载box到本地。

http://www.vagrantbox.es/

搜索并下载trusty64,直接给你地址如下

https://github.com/sepetrov/trusty64/releases/download/v0.0.5/trusty64.box

下载到本地后,使用以下命令添加box到本地列表

C:\vagrant_test>vagrant box add trusty64 trusty64.box

第一个trusty64是你的box的名字,第二个是你box的路径,使用以下命令查看

C:\vagrant_test>vagrant box list
trusty64 (virtualbox, 0)

在使用前面说的命令初始化这个trusty64的box

C:\vagrant_test>vagrant init trusty64
A Vagrantfile has been placed in this directory. You are now
ready to vagrant up your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
vagrantup.com for more information on using Vagrant.

启动虚拟机

C:\vagrant_test>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'trusty64'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: beam-env_default_1514710501470_72272
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: 
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default: 
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => F:/developEnv/beam-env

如果你跟我提示一样,证明本地已经安装了一个初始化,并启动了一个虚拟机。打开virtualBox,可以看到一个虚拟机已经在运行了。
如果你很不幸,执行vagrant up 没有反应,你可以尝试使用这个命令,查看具体的debug日志。

C:\vagrant_test>vagrant up --debug

我曾经遇到过打印的日志在powershell执行的一个地方卡住,不再往下执行,如果你也出现这个问题,那么你可以去参考下面的文章,升级windows的powershell.

https://www.cnblogs.com/a14907/p/6251627.html

连接虚拟机
执行完vagrant up virtualbox就创建并启动了一个虚拟机,使用以下命令连接虚拟机

C:\vagrant_test>vagrant ssh

这样你就可以进行各种linux操作了。
创建共享目录
我们日常的开发场景是这样的,在windows环境中使用windows界面化开发工具也就是IDE,然后代码在linux下测试,测试完成后交付。
此时vagrant创建的虚拟机相当于是linux的测试环境,所以我们需要使用vagrant共享文件夹把开发环境与测试环境打通。
打开我们上面的目录,新建一个目录projects 作为我们的共享目录。在这个目录下还可以发现一个Vagrantfile的文件,打开并添加一行。

Vagrant.configure("2") do |config|
  config.vm.box = "trusty64"
  config.vm.synced_folder "projects/", "/srv/projects" ##添加这行
end

使用以下命令,重新载入配置

C:\vagrant_test>vagrant reload

连接虚拟机,并查看

C:\vagrant_test>vagrant ssh
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.4.0-31-generic x86_64)
 * Documentation:  https://help.ubuntu.com/
New release '16.04.3 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

vagrant@ubuntu:~$ cd /srv/
vagrant@ubuntu:/srv$ ll
total 8
drwxr-xr-x  3 root    root    4096 Dec 31 09:17 ./
drwxr-xr-x 23 root    root    4096 Dec 31 08:55 ../
drwxrwxrwx  1 vagrant vagrant    0 Dec 31 09:17 projects/
vagrant@ubuntu:/srv$

可以看到这个目录已经在虚拟机共享了。
最后使用命令关闭虚拟机

C:\vagrant_test>vagrant halt

vagrant的命令还有很多,可以参考官方的文档

https://www.vagrantup.com/docs/index.html

有什么问题欢迎留言一起讨论。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值