
本文最先釋出在:
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
QQ 群: 82695646