如何在 Linux 上安装 Vagrant

在本教程中,我们将看到如何在 Linux 操作系统上安装 Vagrant。 安装 Vagrant 非常简单! 您所要做的就是前往 Vagrant 下载页面,为您的 Linux 发行版获取合适的预编译二进制版本,然后按照通常安装其他应用程序的方式进行安装。 您还可以从默认存储库安装 Vagrant。 在这里,我提供了在 Linux 机器上安装 Vagrant 的所有可能方法。

内容

  1. 1. 在 Linux 上安装 Vagrant
  2. 2. 安装管理程序
  3. 3. 验证 Vagrant 安装
  4. 4. 升级流浪汉
    1. 5. Vagrant 故障排除

1. 在 Linux 上安装 Vagrant

Vagrant 可在大多数 Linux 和 Unix 发行版的官方存储库中找到。 所以我们可以使用默认的包管理器安装 vagrant。

例如,运行以下命令在 Debian、Ubuntu、Linux Mint 上安装 Vagrant:

$ sudo apt install vagrant

在 Fedora:

$ sudo dnf install vagrant

在 SUSE/openSUSE 上:

$ sudo zypper install vagrant

存储库中的官方版本可能非常过时。 如果您想要最新版本,请转到 官方 Vagrant 下载页面 并下载适用于您的 Linux 操作系统的最新二进制文件。

例如,如果您使用的是 Debian 和其他基于 Debian 的系统,例如 Ubuntu,只需下载 .deb 版本。 在编写本指南时,最新版本是 2.2.10。 它可用于 32 位和 64 位架构。

下载 .deb 文件后,转到下载部分并如下安装:

$ sudo apt install gdebi
$ sudo gdebi vagrant_2.2.10_x86_64.deb

在这里,我使用的原因 “gdebi” 是因为它会自动安装必要的依赖项。

如果您已经下载了 .rpm 文件,您可以使用以下命令安装它:

$ sudo dnf localinstall vagrant_2.2.10_x86_64.rpm

或者,

$ sudo yum localinstall vagrant_2.2.10_x86_64.rpm

2. 安装管理程序

安装 Vagrant 后,您需要安装任何虚拟化管理程序,例如 VirtualBox 或 KVM。 因为,Vagrant 不是独立的虚拟化软件。 它只是其他虚拟化应用程序的包装器和前端。

Vagrant 最初是为 VirtualBox. 自 1.1 版以来,vagrant 团队扩展了对其他流行虚拟化软件和服务器环境的支持,包括 Aws、Azure、GCE、Docker、KVM、Proxmox、Openstack、Openvz、VMware 等等。 您可以查看支持的提供者/环境的完整列表 这里.

出于本指南的目的,我将使用 Oracle VirtualBox. 因为,安装 Virtualbox 很容易,而且 Vagrant 使用 VirtualBox 作为默认提供者。

安装 VirtualBox 在 Debain、Ubuntu、Linux Mint 上,运行以下命令:

$ sudo apt install virtualbox

要在 Red Hat、CentOS 上安装 Virtualbox, Fedora, 跑:

$ sudo dnf install virtualbox

要在 SUSE/openSUSE 上安装 Virtualbox,请运行:

$ sudo zypper install virtualbox

如果您更喜欢使用 KVM,可以按照以下指南进行安装。

  • 在 CentOS 8 服务器中安装和配置 KVM
  • 在 Ubuntu 20.04 Headless Server 中安装和配置 KVM
  • 在 OpenSUSE Tumbleweed 中安装和配置 KVM

3. 验证 Vagrant 安装

要验证 Vagrant 是否已正确安装,只需从终端运行它,无需任何选项:

$ vagrant

它将返回 Vagrant 帮助部分。

Usage: vagrant [options] <command> [<args>]      -h, --help                       Print this help.  Common commands:      box             manages boxes: installation, removal, etc.      cloud           manages everything related to Vagrant Cloud      destroy         stops and deletes all traces of the vagrant machine      global-status   outputs status Vagrant environments for this user      halt            stops the vagrant machine      help            shows the help for a subcommand      init            initializes a new Vagrant environment by creating a Vagrantfile      login                 package         packages a running vagrant environment into a box      plugin          manages plugins: install, uninstall, update, etc.      port            displays information about guest port mappings      powershell      connects to machine via powershell remoting      provision       provisions the vagrant machine      push            deploys code in this environment to a configured destination      rdp             connects to machine via RDP      reload          restarts vagrant machine, loads new Vagrantfile configuration      resume          resume a suspended vagrant machine      snapshot        manages snapshots: saving, restoring, etc.      ssh             connects to machine via SSH      ssh-config      outputs OpenSSH valid configuration to connect to the machine      status          outputs status of the vagrant machine      suspend         suspends the machine      up              starts and provisions the vagrant environment      upload          upload to machine via communicator      validate        validates the Vagrantfile      version         prints current and latest Vagrant version      winrm           executes commands on a machine via WinRM      winrm-config    outputs WinRM configuration to connect to the machine  For help on any individual command run `vagrant COMMAND -h`  Additional subcommands are available, but are either more advanced or not commonly used. To see all subcommands, run the command `vagrant list-commands`.         --[no-]color                 Enable or disable color output         --machine-readable           Enable machine readable output     -v, --version                    Display Vagrant version         --debug                      Enable debug output         --timestamp                  Enable timestamps on log output         --debug-timestamp            Enable debug output with timestamps         --no-tty                     Enable non-interactive output

你也可以 -H 或者 – 帮助 参数调出帮助部分。

$ vagrant --help  [Or]  $ vagrant -h

要获取单个命令的帮助,请运行:

$ vagrant <COMMAND-NAME> -h

要查看 Vagrant 版本,请运行:

$ vagrant version

它将返回当前安装的版本和最新的可用版本。

Installed Version: 2.2.10 Latest Version: 2.2.10   You're running an up-to-date version of Vagrant!

或者,

$ vagrant -v
Vagrant 2.2.10

4. 升级流浪汉

如果你已经使用发行版的包管理器从官方存储库安装了 Vagrant,你可以通过更新你的系统简单地将 Vagrant 升级到更新的版本。 例如,在基于 Debian 的系统上,以下命令会将 Vagrant 更新到更新版本:

$ sudo apt update
$ sudo apt upgrade

在基于 RPM 的系统上,例如 RHEL、CentOS,请执行以下操作:

$ sudo yum update

或者,

$ sudo dnf update

在 SUSE/openSUSE 上:

$ sudo zypper update

如果您手动下载并安装了 Vagrant,只需 下载新版本 从官方 Vagrant 下载页面并按照 “安装流浪汉” 以上部分。

新安装程序将正确覆盖和删除旧文件。 建议在升级过程中不要运行其他 Vagrant 进程。

5. Vagrant 故障排除

如果您在同一台主机上运行多个虚拟机管理程序,您可能会在启动 VM 时遇到如下错误:

There was an error while executing `VBoxManage`, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below.  Command: ["startvm", <ID of the VM>, "--type", "headless"]  Stderr: VBoxManage: error: VT-x is being used by another hypervisor (VERR_VMX_IN_VMX_ROOT_MODE). VBoxManage: error: VirtualBox can't operate in VMX root mode. Please disable the KVM kernel extension, recompile your kernel and reboot (VERR_VMX_IN_VMX_ROOT_MODE) VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component ConsoleWrap, interface IConsole

出现此错误是因为当前正在使用另一个管理程序,例如 KVM。 要修复此错误,您可能需要暂时阻止该管理程序。

使用命令查找 KVM 模块:

$ lsmod | grep kvm

如果您的主机系统是 Intel,您将获得以下输出:

kvm_intel             282624  0 kvm                   663552  1 kvm_intel

如果是 AMD,你会得到这个:

kvm_intel             282624  0 kvm                   663552  1 kvm_amd

现在使用命令阻止 KVM 模块:

$ echo 'blacklist kvm-intel' >> /etc/modprobe.d/blacklist.conf

如果您的 CPU 是 AMD,请在上述命令中输入“kvm-amd”。

重新启动系统,然后再次尝试运行 Vagrant。 这一次 VM 将毫无问题地启动。

而已。 我们已经在 Linux 上成功安装了 Vagrant。 查看以下文章,了解如何使用 Vagrant 设置虚拟化环境以及如何使用 Vagrant 创建和管理虚拟机。

  • Vagrant 教程——Vagrant 入门

安装 VagrantKVMLinuxVagrantVirtualBoxVirtualization