Vagrant 初學者教學

在本 Vagrant 教程中,我將教您在工作站上設置 Vagrant,以便為您的開發環境創建和管理虛擬機。

什麼是Vagrant?

Vagrant 是一個由 Hashicorp 的人創建的開源實用程序。

它是一個包裝實用程序,可在 Virtualbox、HyperV、VMware 和 Docker 等虛擬機解決方案之上運行。 它抽象了通過虛擬機解決方案管理虛擬機所涉及的所有復雜活動,並且可以自動執行大多數任務。

Vagrantfile

使用 Vagrant,您可以通過現有的 VM 映像輕鬆創建虛擬開發環境,並將所有 VM 配置保存在名為 Vagrantfile 的配置文件中。 簡而言之,您可以在 Vagrantfile 中定義 VM 中所需的所有內容,Vagrant 將負責在 VM 中配置這些內容。

這是一個 Vagrantfile 示例,

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
    config.vm.box = "ubuntu/trusty64"
  
    config.vm.network "private_network", ip: "192.168.33.10"
  
    config.vm.provider "virtualbox" do |vb|
      vb.memory = "1024"
    end
end

如果有人在他們的系統上安裝了 Vagrant,您可以與他們共享 Vagrantfile,他們可以構建一個與您創建的類似的虛擬機。

Vagrant Boxes

在示例 Vagrantfile 中,您可以看到一個名為“config.vm.box”的參數。

Vagrant Box == 虛擬機映像(類似於與虛擬機一起使用以從頭開始創建虛擬機的 ISO 映像)

vagrant box 是預烘焙的虛擬機鏡像(Ubuntu、Centos 等)。 這種盒子格式可以與任何使用 Vagrant 的人共享。

您可以從 Vagrantcloud 下載現成的社區框。

Vagrant 用例

以下是 Vagrant 的實際用例

開發環境:假設您希望為團隊中的所有開發人員提供相同的開發環境。 在這種情況下,您可以創建一個通用 Vagrantfile,其中包含為 VM 提供開發環境依賴項(軟件)所需的所有配置。 然後與所有開發人員共享 Vagrantfile。 這樣,所使用的底層軟件或配置就不會發生任何變化。 一些公司將 Vagrant 盒子託管在一個公共位置,用於存放不同的經批准的軟件,以便組織中的每個人都可以使用它。

沙盒環境:如果您想要一個沙盒環境進行測試,您可以使用 Vagrant 在幾分鐘內啟動並銷毀虛擬機。

事前準備

  • 您應該安裝一個虛擬盒子。 您可以從此處下載最新的 Virtualbox 設置 https://www.virtualbox.org/wiki/Downloads
  • 您應該具有根訪問權限才能在工作站上安裝該軟件。
  • 打開互聯網訪問以下載一些軟件和虛擬機映像。
  • 您的工作站應具有 4 GB 以上的 RAM。

安裝Vagrant

  • 步驟1:從https://www.vagrantup.com/downloads下載vagrant安裝文件
  • 步驟 2:根據您的操作系統從下載的文件安裝 Vagrant。 vagrant 可執行文件將自動添加到您的系統路徑中,您可以開始使用 vagrant 命令。
  • 步驟 3:要驗證 vagrant 的安裝,請執行以下 vagrant 命令以查看它是否輸出版本。
vagrant --version

使用 Vagrant 創建虛擬機

在本節中,您將學習如何使用 vagrant 創建虛擬機。

步驟1:選擇一個文件夾來保存所有vagrant相關的文件並創建一個VM項目目錄。

mkdir apache-vm && cd apache-vm

第 2 步:使用 Ubuntu 映像初始化 Vagrantfile。 該文件將包含所有必要的配置供您參考。 在這裡,我們將使用 vagrant cloud 中提供的通用 Ubuntu 鏡像。

執行以下命令初始化Vagrantfile

vagrant init bento/ubuntu-22.04 

步驟 3:使用以下命令啟動 Vagrant VM。

vagrant up

上面的命令將首先從 vagrant cloud 下載 ubuntu/trusty64 VM 鏡像,然後啟動 VM。

此外,它還會生成 SSH 密鑰對,並在此過程中將公鑰添加到 VM。 這樣我們就可以在機器啟動並運行後通過 SSH 連接到機器。

步驟4:您可以使用以下命令檢查VM的狀態。

vagrant status

它應該將輸出顯示為正在運行(virtualbox)

通過 SSH 連接 Vagrant 虛擬機

要了解 vagrant 機器的 ssh 詳細信息,請執行以下命令。

vagrant ssh-config

上面的命令將顯示所有 ssh 詳細信息,例如用戶名、密鑰文件位置等,如下所示。

$ vagrant ssh-config
Host lab
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/bibinwilson/Documents/GitHub/vagrant/ubuntu-20/lab/.vagrant/machines/lab/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATA

現在讓我們看看如何通過 SSH 連接到 Vagrant 啟動的虛擬機。

確保您正在執行 apache-vm 文件夾中的命令。

您可以使用以下命令通過 SSH 連接到 Vagrant。

vagrant ssh

當您運行 ssh 命令時,vagrant 會從 vagrant up 命令創建的 .vagrant 隱藏文件夾中獲取私鑰。 該文件夾包含 ssh 私鑰。

/apache-vm/.vagrant/machines/default/virtualbox/private_key

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *