Vagrant 是用于构建和管理虚拟机环境的开源命令行工具。默认情况下,Vagrant可以在VirtualBox,Hyper-V和Docker之上配置机器,但可以通过Vagrant插件系统安装Libvirt(KVM),VMware和AWS等许多其他提供程序。

Vagrant通常由开发人员用来轻松设置与生产环境匹配的开发环境。

本教程介绍了如何在Debian 9机器上安装Vagrant。我们将使用VirtualBox提供程序,这是Vagrant的默认提供程序。

先决条件

在继续学习本教程之前,请确保您以位具有sudo权限的用户身份登录。

在继续本教程之前,请确保满足以下先决条件:

在Debian上安装Vagrant

Debian仓库中提供的Vagrant软件包已经过时了。我们将从官方Vagrant网站下载并安装最新版本的Vagrant。

在撰写本文时,Vagrant的最新稳定版本为4.0.0。在继续下一步之前,您应该检查 Vagrant下载页面以查看是否有较新的版本。

首先使用以下信息更新包裹清单:

sudo apt update

使用以下 curl命令下载Vagrant软件包:

curl -O https://releases.hashicorp.com/vagrant/2.2.3/vagrant_2.2.3_x86_64.deb

下载.deb文件后,请输入以下内容进行安装:

sudo apt install ./vagrant_2.2.3_x86_64.deb

要验证安装是否成功,请运行以下命令,该命令将显示Vagrant版本:

vagrant --version

输出应如下所示:

Vagrant 2.2.3

Vagrant入门

现在,您的Debian机器上已安装了Vagrant,我们来看看如何创建最常用的开发环境。

第一步是创建目录,该目录将是项目根目录并保存Vagrantfile文件。 Vagrantfile是一个Ruby文件,描述了如何配置和配置虚拟机。

创建项目目录,然后使用以下方法切换到该目录:

mkdir ~/my-first-vagrant-project cd ~/my-first-vagrant-project

下一步是使用vagrant init命令初始化新的Vagrantfile,并指定我们要使用的框。

框是Vagrant环境的软件包格式,并且是特定于提供程序的。您可以在vagrant box目录页上找到公开可用的vrgrant box列表。

在此示例中,我们将使用centos 7 box。运行以下命令以初始化新的Vagrantfile:

vagrant init centos/7
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.

您可以打开 Vagrantfile ,阅读评论并根据需要进行调整。

现在,我们可以运行vagrant up命令,该命令将根据Vagrantfile创建和配置虚拟机。

vagrant up
==> default: Configuring and enabling network interfaces...
    default: SSH address: 192.168.121.74:22
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Rsyncing folder: /home/myfreax/Vagrant/my-first-vagrant-project/ => /vagrant

从上方的输出中可以看到,Vagrant还在虚拟机的/vagrant上安装了项目目录,使您可以在主机上处理项目的文件。

要通过SSH进入虚拟机,只需运行:

vagrant ssh

您可以使用以下命令停止虚拟机:

vagrant halt

如果正在运行的计算机正在运行,则此命令将停止运行该计算机,并销毁在创建计算机期间创建的所有资源:

vagrant destroy

结论

您已经了解了如何在Debian 9计算机上安装和使用Vagrant。我们还向您展示了如何创建基本的开发环境。

要了解有关流浪者的更多信息,请访问官方vagrant文档页面。

如果您有任何问题,请在下面发表评论。