本文最先發布在:https://www.itcoder.tech/posts/how-to-install-vagrant-on-ubuntu-20-04/
Vagrant是一個命令行工具,用於構建和管理虛擬開發環境。
默認情況下,Vagrant 在 VirtualBox, Hyper-V, 和 Docker 之上準備環境。支持其他提供者,例如, Libvirt (KVM), VMware and AWS 可以通過 Vagrant 插件系統啓用。
Vagrant 通常被開發者用來建立匹配生產環境的開發環境。
這篇文章描述如何在 Ubuntu 20.04 機器上安裝 Vagrant。我們將會使用 VirtualBox,Vagrant 默認的提供者。
一、在 Ubuntu 上安裝 Vagrant
我們將會在 VirtualBox 的基礎上提供虛擬機。
如果 VirtualBox 沒有安裝在你係統上,你可以運行下面的命令安裝它:
sudo apt update
sudo apt install virtualbox
Vagrant 軟件包,在 Ubuntu 源倉庫中提供,並且不經常更新。我們將會從官方 Vagrant 網站下載並安裝最新版的 Vagrant。
在寫這篇文章的時候,Vagrant 最新版是 2.2.9。瀏覽 Vagrant 下載頁面,看看有沒有 Vagrant 最新版本可用。
使用 wget 下載 Vagrant 軟件包:
curl -O https://releases.hashicorp.com/vagrant/2.2.9/vagrant_2.2.9_x86_64.deb
一旦下載完成,輸入下面的命令安裝它:
sudo apt install ./vagrant_2.2.9_x86_64.deb
想要驗證安裝是否成功,運行下面的命令,打印 Vagrant 版本:
vagrant --version
輸出類似下面這樣:
Vagrant 2.2.9
二、Vagrant 入門
創建 Vagrant 項目非常簡單,在項目根目錄下定義個 Vagrantfile。
運行下面的命令,創建文件夾,並且 cd 切換到這個目錄:
mkdir ~/my-vagrant-project
cd ~/my-vagrant-project
下一步,使用vagrant init
加上你想使用的盒子,初始化一個新的 Vagrantfile。
盒子就是Vagrant 環境的軟件包格式。你可以在 Vagrant box 頁面 找到盒子列表。
在這個例子中,我們使用centos/8
盒子:
vagrant init centos/8
輸出:
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 是一個 Ruby 文件,它用來描述如何配置和提供虛擬機。你可以打開 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/linuxize/Vagrant/my-vagrant-project/ => /vagrant
Vagrant 將項目目錄掛載到虛擬機的 /vagrant
目錄。這允許你在你的主機上操作你的項目文件。
想要使用 SSH 進入你的虛擬機,運行:
vagrant ssh
你可以使用下面的命令停止虛擬機:
vagrant halt
想要釋放所有創建虛擬機過程中的資源,輸入:
vagrant destroy
三、總結
我們向你展示瞭如何在 Ubuntu 20.04 上安裝 Vagrant 以及創建一個基本的 Vagrant 項目。
想要查找更多關於 Vagrant 的信息,瀏覽 Vagrant 官方文檔頁面。
如果你有任何疑問,請通過以下方式聯繫我們:
微信:
微信羣: 加上面的微信,備註微信羣
QQ: 3217680847