virtualbox+vagrant學習-4-Vagrantfile-1-簡介

Vagrantfile

Vagrantfile的主要功能是描述項目所需的機器類型,以及如何配置和提供這些機器。之因此稱爲Vagrantfiles,是由於文件的實際文本文件名是Vagrantfile(除非文件系統在嚴格的區分大小寫模式下運行,不然大小寫可有可無)。html

每一個項目運行一個Vagrantfile文件,Vagrantfile文件應該提交給版本控制。這容許參與項目的其餘開發人員檢查代碼,運行vagrant up,並繼續他們的工做。Vagrantfile文件可移植到每一個支持vagrant的平臺。編程

Vagrantfile的語法是Ruby,但修改Vagrantfile並不須要瞭解Ruby編程語言,由於它主要是簡單的變量賦值。實際上,Ruby甚至不是最受歡迎的社區vagrant,這應該有助於說明,儘管人們沒有Ruby知識,但vagrant是很是成功的。網絡

 

1.Lookup Path查找路徑

當運行任何vagrant命令時,vagrant會爬上目錄樹,尋找它能找到的第一個Vagrantfile,首先從當前目錄開始。因此若是你在/home/mitchellh/projects/foo中運行vagrant,它會搜索如下路徑來尋找流浪者文件,直到找到一個:編程語言

/home/mitchellh/projects/foo/Vagrantfile
/home/mitchellh/projects/Vagrantfile
/home/mitchellh/Vagrantfile
/home/Vagrantfile
/Vagrantfile

這個特性容許你從項目中的任何目錄運行vagrant。
經過將VAGRANT_CWD環境變量設置爲其餘路徑,能夠更改vagrant查找Vagrantfile文件的起始目錄。ide

 

2.Load Order and Merging加載順序和合並

須要理解的一個重要概念是vagrant如何加載Vagrantfile文件。實際上,vagrant加載了一系列Vagrantfiles文件,併合並了設置。這容許不一樣級別的Vagrantfiles文件覆蓋之前的設置。Vagrantfile按以下所示的順序加載。請注意,若是在任何步驟中沒有找到Vagrantfiles,vagrant將繼續下一步。spa

  • 與給定的機器中的box一塊兒打包的Vagrantfile
  • 在你的根目錄下的Vagrantfile (默認指向 ~/.vagrant.d目錄)。這容許你爲系統用戶指定一些默認值
  • 來自項目目錄的Vagrantfile。你能夠在這個Vagrantfile文件中爲系統用戶指定一些默認值——這就是大多數時候要修改的Vagrantfile。
  • 多機器覆蓋(若是有的話),Multi-machine overrides
  • 指定provider覆蓋(若是有的話),Provider-specific overrides

在每一個級別,設置集將與之前的值合併。這究竟意味着什麼,取決於環境。對於大多數設置,這意味着新的設置將覆蓋舊的設置。然而,對於諸如定義網絡之類的事情,網絡其實是相互附加的。默認狀況下,你應該假設設置將相互覆蓋。若是行爲不一樣,將在相關文檔部分中記錄。vagrant

在每一個Vagrantfile文件中,你能夠指定多個Vagrant.configure塊。全部配置將按照定義的順序合併到一個Vagrantfile文件中。版本控制

 

3.Available Configuration Options可用的配置選項

繼續往下看code

相關文章
相關標籤/搜索