ecology9 后端开发环境搭建_利用Vagrant快速搭建开发环境

ca81381f73731c01787b4c0ebcc8ea91.png

Docker大家应该都了解吧,一个非常方便的技术,可以让我们随时随地部署应用。但是部署应用虽然方便了,开发环境的搭建还是那样的,要自己安装一大堆软件。那么有没有类似的工具可以方便我们呢?这就是本文要的介绍的Vagrant。

Vagrant是利用虚拟机技术的一个工具,可以方便我们搭建开发环境,并在虚拟机和本地之间方便的同步文件、开发和调试项目。如果你在Windows下开发程序,但是需要在Linux下调试,那么Vagrant很好用,它的自动同步文件功能可以无缝同步,感觉就好像直接在Linux下开发一样。

安装Vagrant

Vagrant是基于虚拟机的,所以需要首先安装虚拟机软件。Vagrant对于VirtualBox的支持是免费的, 所以我们安装VirtualBox就好了。首先要到VirtualBox官网下载安装VirtualBox。

VirtualBox下载地址:

https://www.vagrantup.com/downloads.html

然后就可以下载安装Vagrant了,它会自动添加环境变量,所以安装完之后就可以直接运行vagrant命令了。下载地址(速度比较慢,最好有代理):

set http_proxy=127.0.0.1:1080set https_proxy=127.0.0.1:1080

配置代理

Vagrant服务器在国外,下载安装和使用的时候速度比较慢。所以最好有一个通畅的网络代理,不然下载速度慢到窒息。

首先是终端代理。在终端使用命令启动和运行Vagrant的时候,它会自动下载镜像,所以首先要设置终端代理。如果你用的是cmd的话,就这样设置代理。

vagrant plugin install vagrant-proxyconf

如果你在Windows上使用Git Bash或者在Linux系统上运行的话,就这样设置代理。

  Vagrant.configure("2") do |config|    # 配置代理选项    if Vagrant.has_plugin?("vagrant-proxyconf")      config.proxy.http     = "http://localhost:10800"      config.proxy.https    = "http://localhost:10800/"      config.proxy.no_proxy = "localhost,127.0.0.1,.example.com"    end    # ... other stuff

假如在虚拟机中需要代理来运行命令的时候,可以在Vagrant中安装以下插件,它会自动设置虚拟机中的代理。

vagrant plugin install vagrant-proxyconf

安装完毕之后,需要在Vagrant配置文件中进行配置。

  Vagrant.configure("2") do |config|    # 配置代理选项    if Vagrant.has_plugin?("vagrant-proxyconf")      config.proxy.http     = "http://localhost:10800"      config.proxy.https    = "http://localhost:10800/"      config.proxy.no_proxy = "localhost,127.0.0.1,.example.com"    end    # ... other stuff

启动项目

配置好了之后就可以创建项目了。首先创建一个空文件夹,然后在其中运行下面的命令来创建Vagrant项目。创建项目的时候需要指定虚拟机使用的系统,Vagrant Cloud上有大量官方镜像和社区镜像,几乎可以满足你的任何需求,CentOS、Arch、Fedora等镜像也都支持,甚至也有一些打包了开发环境的定制镜像。这里我用的镜像是官方的Ubuntu 18.04.

vagrant init ubuntu/bionic64

命令运行完毕会生成一个Vagrant配置文件,指定了Vagrant和底层虚拟机的各项设置。默认配置去掉注释之后应该类似下面这样。这个配置文件其实是一个Ruby文件,Vagrant那一行是Vagrant版本,不用动,我们如果要编辑配置文件的话,直接将选项写到中间的部分就好了。

Vagrant.configure("2") do |config|  config.vm.box = "ubuntu/bionic64"end

然后就可以启动Vagrant,相关命令如下,它们实际上对应的也是底层的虚拟机启动和关闭命令。我们要启动项目的话,自然使用第一条命令启动虚拟机就可以了。

vagrant up # 启动/创建虚拟机vagrant halt # 正常关闭虚拟机vagrant suspend # 挂起虚拟机,也就是睡眠功能vagrant destroy # 删除虚拟机和其文件

配置好代理的话,系统镜像应该几分钟内就可以下载完成。然后Vagrant会自动帮我们创建好虚拟机并配置好各种功能。如果这时候打开VirtualBox软件的话,也会看到生成的虚拟机系统。

进入虚拟机系统

Vagrant会自动配置好虚拟机的SSH端口,以及免密登录SSH。所以我们只需要运行下面的命令即可进入Vagrant系统的终端。

vagrant ssh

这样就进入到了一个真正的Linux虚拟机系统中。如果要安装软件的话,也可以使用apt等系统对应的包管理器来安装。

Vagrant还有一个非常好用的功能就是自动同步,现在我们在项目中创建一个文件,例如简单写一个Python脚本。

#! /usr/bin/env python3import platformprint(platform.platform())

然后在虚拟机中切换到/vagrant目录下,可以看到这个目录下也出现了相同的文件。没有错,Vagrant会自动将项目中的所有文件同步到该文件夹下。这是非常方便而且实用的一个功能。有了它,我们可以在Windows中利用任何喜欢的软件来开发程序,然后在虚拟机中调试和运行程序,而完全不用关注底层的工作,因为Vagrant会帮我们做好这一切。

启动脚本

Vagrant还支持一个名为启动脚本的功能,它允许我们在运行vagrant up命令启动虚拟机的时候,自动执行一个脚本,来完成一些任务,这些任务可以是安装某些必备软件,可以是从Github上克隆某些项目,也可以是复制或者删除某些项目文件。总之,我们可以将一些必需任务写成脚本,然后让Vagrant自动执行,这样就可以实现“可移植”的开发环境。当别人使用了我们的Vagrant项目,不需要任何额外工作,直接启动项目,就能得到和我们完全一样的开发环境。而这正是Vagrant的目标之一。

这个功能其实也很简单,首先创建一个shell脚本文件,,假设文件名为bootstrap.sh,在其中编写我们需要的操作。然后只需要在配置文件中添加如下的配置即可。

Vagrant.configure("2") do |config|  # 以下这一行是重点  config.vm.provision :shell, path: "bootstrap.sh"end

这样,在启动项目和虚拟机的时候,就会自动执行bootstrap.sh脚本文件。

如果觉得本文有帮助的话,欢迎收藏转发加评论,大家一起交流进步呀!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值