在本教程中,我们将了解如何在 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 后,您需要安装任何虚拟化管理程序,对于 example 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
发生此错误是因为另一个管理程序,对于 example 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 入门