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