首頁 > 後端開發 > php教程 > 如何創建和共享流浪者的基礎框

如何創建和共享流浪者的基礎框

尊渡假赌尊渡假赌尊渡假赌
發布: 2025-02-20 09:51:10
原創
344 人瀏覽過

每天都有有趣的新工具出現,幫助開發者提高效率,讓他們專注於項目的實際業務價值。

Vagrant 就是這樣一個工具,它正成為開發者最強大的助手之一,它標準化了開發環境的創建和管理方式。

本文將教你如何基於 Ubuntu 14.04 LTS 創建你自己的 Vagrant 基礎鏡像,用你喜歡的應用程序配置它,並通過 Vagrant Cloud 與其他人分享。

關鍵要點

  • 創建 Vagrant 基礎鏡像,需要在你的機器上安裝 VirtualBox 和 Vagrant,然後使用 VirtualBox 創建一個新的虛擬機。安裝必要的軟件和配置,並使用 vagrant package 命令將其打包成鏡像文件。
  • Vagrant 基礎鏡像是一個預先打包的環境,可以用作項目的起點。它確保了不同開發環境之間的一致性,並通過消除從頭手動設置一切的需要來節省時間。
  • 可以通過將其上傳到 Vagrant Cloud 等鏡像託管服務來共享 Vagrant 基礎鏡像。上傳後,可以與其他人共享鏡像 URL,他們可以使用 vagrant box add 命令將其添加到他們的 Vagrant 環境中。
  • Vagrant 基礎鏡像通常包括操作系統、必要的軟件(如 Web 服務器或數據庫服務器)以及開發環境所需的任何配置。但是,內容可以根據特定項目的需要進行調整。

創建虛擬機

注意:以下示例需要在本地計算機上安裝至少 1.5 版本的 Vagrant。

要創建虛擬機,你需要一個虛擬化提供程序。雖然 Vagrant 對使用哪個提供程序沒有歧視,但以下示例將使用 VirtualBox。

在創建虛擬機之前,你需要先安裝 VirtualBox。

接下來,前往 Ubuntu 下載頁面並獲取 Ubuntu 14.04 LTS ISO 鏡像。

How to Create and Share a Vagrant Base Box

關於 LTS 版本

每六個月就會發布一個新的 Ubuntu 版本,並且每個版本的支持都是有限的。

LTS 代表長期支持,它被賦予特定子集的 Ubuntu 版本。 LTS 的時間跨度長達五年。如果你今天安裝了 LTS 版本,你將獲得五年後的更新。

對於 Web 開發,最好始終使用帶有 LTS 標籤的 Ubuntu,好消息是 Ubuntu 14.04 LTS 於 2014 年 4 月 17 日發布,因此支持持續到 2019 年。


安裝 Ubuntu

ISO 文件下載完成後,啟動VirtualBox 並單擊“新建”以創建一個新的虛擬機,然後選擇Linux 作為類型,Ubuntu (64 位) 作為版本,並為你的虛擬機命名。

How to Create and Share a Vagrant Base Box

單擊“繼續”,將內存大小設置為 1024 MB 或更高(如果你認為虛擬機中將運行內存密集型任務)。

在下一個面板中,選擇 現在創建虛擬硬盤,然後選擇 VMDK (虛擬機磁盤)

物理硬盤存儲 面板中,選擇 動態分配 並設置至少 8 GB。單擊“繼續”,你的虛擬機就快完成了。

你需要將下載的 Ubuntu 14.04 LTS ISO 文件作為虛擬 CD 插入,以便在啟動虛擬機時安裝操作系統。這就像你將可啟動 CD 插入 CD-ROM 一樣。

從列表中選擇虛擬機,單擊 設置,然後單擊 存儲 選項卡。在 控制器:IDE 上,單擊小的 CD 圖標(在下面的圖像中以紅色突出顯示),然後單擊 選擇磁盤 並選擇 Ubuntu ISO 文件。

How to Create and Share a Vagrant Base Box

現在我們準備啟動虛擬機並將 Ubuntu 作為客戶操作系統安裝。安裝過程中還有幾個步驟,例如選擇語言、國家/地區等。我將在下面介紹更重要的步驟。

  • 當提示輸入主機名時,鍵入 vagrant
  • 對於用戶名和密碼,也鍵入 vagrant
  • 加密你的主目錄? 選擇
  • 在時區面板上,選擇 UTC 或你自己的首選時區
  • 分區方法:引導式 – 使用整個磁盤並設置 LVM
  • 當提示安裝哪些軟件時,選擇 OpenSSH 服務器,其餘的軟件(如 LAMP 或 MySQL)稍後將安裝
  • 選擇在主引導記錄上安裝 GRUB 引導加載程序

這應該總結了安裝過程,接下來將提示你登錄。使用 vagrant 用戶和密碼登錄。

How to Create and Share a Vagrant Base Box

接下來,通過鍵入以下命令切換到 root 用戶:

<code>sudo su -</code>
登入後複製
登入後複製
登入後複製

請注意,這不是一個非常安全的設置,保護 Ubuntu 的安全不在本文的討論範圍之內。對於開發機器,安全並不重要。

使用 root 用戶,通過鍵入以下命令更新到最新的軟件包

<code>apt-get update
apt-get upgrade</code>
登入後複製
登入後複製
登入後複製

為 Vagrant 配置虛擬機

Vagrant 需要設置一些特定的選項才能與虛擬機良好配合。

無需密碼的命令執行

Vagrant 執行的所有操作都將使用 vagrant 用戶,並且所有 sudo 命令都需要在每次運行時無需密碼即可執行。

要設置此項,我們需要運行 visudo 命令來為用戶配置無需密碼的 sudo。只需鍵入:

<code>visudo</code>
登入後複製
登入後複製
登入後複製

將以下行添加到文件的末尾並保存:

<code>vagrant ALL=(ALL) NOPASSWD:ALL</code>
登入後複製
登入後複製
登入後複製

Root 密碼

創建 Vagrant 鏡像時的一般準則是將 root 密碼設置為眾所周知的密碼。 Vagrant 使用 vagrant 作為密碼。要設置此項,請以 root 用戶身份鍵入以下命令,並在提示時鍵入密碼:

<code>sudo su -</code>
登入後複製
登入後複製
登入後複製

SSH 配置

為了讓 Vagrant 能夠 SSH 到虛擬機,它使用公鑰身份驗證。我們需要為我們的 vagrant 用戶設置此項。

仍然以 root 用戶身份登錄,轉到 vagrant 用戶的主目錄:

<code>apt-get update
apt-get upgrade</code>
登入後複製
登入後複製
登入後複製

創建以下文件夾:

<code>visudo</code>
登入後複製
登入後複製
登入後複製

Vagrant 使用不安全的密鑰對連接到虛擬機,你可以在此處下載:github.com/mitchellh/vagrant/blob/master/keys/vagrant.pub

只需運行以下命令即可直接獲取它:

<code>vagrant ALL=(ALL) NOPASSWD:ALL</code>
登入後複製
登入後複製
登入後複製

OpenSSH 對此文件夾和文件權限非常嚴格,因此讓我們將其更改為正確的權限:

<code>passwd</code>
登入後複製

如果一切順利,這就是 /home/vagrant/home/vagrant/.ssh 的文件夾結構,包括權限。

How to Create and Share a Vagrant Base Box

可選步驟:為了加快到虛擬機的 SSH 連接速度,我們需要修改 SSH 服務器配置:

<code>cd /home/vagrant</code>
登入後複製

將此行添加到文件的末尾並保存:

<code>mkdir .ssh</code>
登入後複製

然後重新啟動 SSH 服務器:

<code>wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O .ssh/authorized_keys</code>
登入後複製

最後,我們可以通過鍵入以下命令註銷 root 用戶:

<code>chmod 700 .ssh
chmod 600 .ssh/authorized_keys
chown -R vagrant:vagrant .ssh</code>
登入後複製

安裝 VirtualBox 客戶機附加組件

為了讓 Vagrant 正確共享客戶機和主機操作系統之間的文件夾,需要安裝 VirtualBox 客戶機附加組件

在 Linux 系統上安裝客戶機附加組件的先決條件是一些軟件包,例如 Linux 頭文件和開發工具。讓我們首先安裝它們,方法是鍵入以下內容:

<code>cd /etc/ssh
pico sshd_config</code>
登入後複製

接下來,我們需要確保客戶機附加組件映像已插入虛擬機的虛擬 CD-ROM 中。為此,請關注虛擬機的窗口,選擇 設備 -> 插入客戶機附加組件 CD 映像

How to Create and Share a Vagrant Base Box

你可以通過從列表中選擇正在運行的虛擬機並單擊 設置 -> 存儲 來驗證映像是否已插入 VirtualBox。你應該在 控制器:IDE 下看到 VBoxGuestAdditions.iso

How to Create and Share a Vagrant Base Box

接下來,我們需要掛載 CD 並運行實際的安裝 shell 腳本,方法是運行以下命令:

<code>UseDNS no</code>
登入後複製

此操作完成後,最好重新啟動虛擬機以確保新的設置生效:

<code>sudo su -</code>
登入後複製
登入後複製
登入後複製

創建基礎鏡像包

現在,我們創建了基本的虛擬機,我們需要創建實際的 Vagrant 基礎鏡像。只需在你的實際主機機器的終端(而不是你的虛擬機的命令行)中鍵入以下命令:

<code>apt-get update
apt-get upgrade</code>
登入後複製
登入後複製
登入後複製

是你在 VirtualBox 設置中指定的虛擬機的名稱。如果你不知道名稱是什麼,你可以鍵入以下命令來查找:

<code>visudo</code>
登入後複製
登入後複製
登入後複製

在我們的例子中,它被稱為 Ubuntu 14.04 x64 LTS Vagrant Base Box,它也包含空格,所以確保你像這樣用引號將其括起來:

<code>vagrant ALL=(ALL) NOPASSWD:ALL</code>
登入後複製
登入後複製
登入後複製

此過程將生成一個 package.box 文件,它是虛擬機和 Vagrant 元數據文件的存檔。

共享基礎鏡像

Vagrant 最近創建了一項名為 Vagrant Cloud 的服務,任何人都可以在其中創建和共享 Vagrant 鏡像供其他人使用。

要在 Vagrant Cloud 上共享我們的基礎鏡像,我們首先需要註冊。登錄後,你將看到下面的儀表板。單擊右上角的 創建鏡像 鏈接。

How to Create and Share a Vagrant Base Box

我們需要為我們的鏡像指定一個名稱和簡短描述。你可以在此處輸入任何內容,我為我們的鏡像添加了 ubuntu-trusty64Trusty 是 Ubuntu 14.04 LTS 的開發代號。

How to Create and Share a Vagrant Base Box

接下來,你需要為鏡像創建一個版本,讓我們為初始版本號添加 1.0.0 並單擊 創建版本

How to Create and Share a Vagrant Base Box

完成鏡像和版本的創建後,我們需要添加一個提供程序。單擊 創建新的提供程序 並鍵入 virtualbox,然後單擊 URL 按鈕並鍵入 package.box 文件所在的 URL。

注意:只有付費高級用戶才能直接將基礎鏡像上傳到 Vagrant Cloud。有關更多信息,請查看定價頁面。

添加提供程序後,單擊 立即發布 按鈕以使鏡像在 Vagrant Cloud 上可用。

本文中用作示例的 Vagrant 鏡像可在 https://www.php.cn/link/cb0d6d3459c57b7a5c968956b1ecf1e3 獲取。這是一個你可以用於開發環境的完美基礎鏡像,但請記住它並不安全,只在本地使用。

結論

你學習瞭如何創建一個 VirtualBox 虛擬機,安裝 Ubuntu 作為客戶操作系統以及如何打包此 VM 以與 Vagrant 一起使用。

最後,我們向你展示瞭如何在 Vagrant Cloud 上分發你的 Vagrant 基礎鏡像並在互聯網上公開共享它。

在本文的後續文章中,你將學習如何使用此 Vagrant 基礎鏡像來安裝你首選的軟件並使用 shell 腳本和其他配置工具的組合來設置開發環境。

創建和共享 Vagrant 基礎鏡像的常見問題解答 (FAQ)

什麼是 Vagrant 基礎鏡像,為什麼我需要它?

Vagrant 基礎鏡像本質上是一個預先打包的環境,你可以將其用作項目的起點。它包含操作系統、預安裝的軟件以及開發環境所需的配置。使用 Vagrant 基礎鏡像的主要優點是它確保了不同開發環境之間的一致性,從而減少了遇到“在我的機器上可以工作”問題的可能性。它還可以節省時間,因為你無需從頭開始手動設置所有內容。

如何創建 Vagrant 基礎鏡像?

創建 Vagrant 基礎鏡像涉及多個步驟。首先,你需要在你的機器上安裝 VirtualBox 和 Vagrant。然後,你使用 VirtualBox 創建一個新的虛擬機,安裝必要的軟件和配置,並使用 vagrant package 命令將其打包成鏡像文件。然後,可以使用此鏡像文件來初始化新的 Vagrant 環境。

如何與他人共享我的 Vagrant 基礎鏡像?

你可以通過將其上傳到 Vagrant Cloud 等鏡像託管服務來共享你的 Vagrant 基礎鏡像。上傳後,你可以與他人共享鏡像 URL,他們可以使用 vagrant box add 命令將其添加到他們的 Vagrant 環境中。

我的 Vagrant 基礎鏡像中應該包含什麼?

你的 Vagrant 基礎鏡像中包含的內容取決於你的項目需求。但是,它通常包括操作系統、必要的軟件(如 Web 服務器或數據庫服務器)以及開發環境所需的任何配置。

如何更新我的 Vagrant 基礎鏡像?

要更新你的 Vagrant 基礎鏡像,你需要對虛擬機進行必要的更改,將其重新打包成鏡像文件,然後將其上傳到鏡像託管服務。然後,你可以使用 vagrant box update 命令更新 Vagrant 環境中的鏡像。

我可以將 Vagrant 基礎鏡像用於生產環境嗎?

雖然你可以在技術上將 Vagrant 基礎鏡像用於生產環境,但不建議這樣做。 Vagrant 主要用於創建可重現的開發環境,將其用於生產可能會導致性能和安全問題。

如何排除我的 Vagrant 基礎鏡像的問題?

排除 Vagrant 基礎鏡像的問題可能包括檢查 Vagrant 和 VirtualBox 日誌、驗證鏡像文件完整性以及確保你的 Vagrant 和 VirtualBox 版本兼容。

我可以將 Vagrant 基礎鏡像與其他虛擬化軟件一起使用嗎?

是的,Vagrant 支持除 VirtualBox 之外的其他幾種虛擬化提供程序,包括 VMware、Hyper-V 和 Docker。但是,你需要確保鏡像文件與你使用的提供程序兼容。

如何優化我的 Vagrant 基礎鏡像?

優化你的 Vagrant 基礎鏡像可能包括減小鏡像文件大小、最大限度地減少預安裝軟件的數量以及使用腳本來自動化鏡像創建過程。

我可以將 Vagrant 基礎鏡像用於跨平台開發嗎?

是的,使用 Vagrant 基礎鏡像的主要優點之一是它允許跨平台開發。由於鏡像文件包含完整的開發環境,因此它可以在支持 Vagrant 和所選虛擬化提供程序的任何平台上使用。

以上是如何創建和共享流浪者的基礎框的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板