原文地址html
如今咱們已經有了一個運行 Ubuntu 的虛擬機,而且能夠在宿主機上編輯文件並自動同步到虛擬機。如今讓咱們安裝一個 web 服務器,經過服務器訪問這些文件。web
能夠經過 SSH 進入並安裝一個 web 服務器並開始工做,但每一個使用 Vagrant 的人都必須這樣作。相反,Vagrant 內置了對自動配置的支持。使用此功能時,Vagrant 將在執行 vagrant up
時自動安裝軟件,以便 guest 機器能夠重複建立並可當即使用。shell
能夠經過 shell 腳原本爲剛纔的項目設置 Apache。建立下面的 shell 腳本並命名爲 bootstrap.sh
,保存在 Vagrantfile 文件相同的目錄下:apache
#!/usr/bin/env bash apt-get update apt-get install -y apache2 if ! [ -L /var/www ]; then rm -rf /var/www ln -fs /vagrant /var/www fi12345678
而後,配置 Vagrant 在設置機器的時候運行這個腳本。編輯 Vagrantfile 文件:bootstrap
Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise64" config.vm.provision :shell, path: "bootstrap.sh" end1234
「provision」 行是新添加的,告訴 Vagrant 使用 shell 命令執行 bootstrap.sh
文件來設置虛擬機。文件路徑是相對於 Vagrantfile 文件所在的項目根目錄的相對路徑。瀏覽器
配置寫完後,執行 vagrant up
,Vagrant 會自動配置。能夠在終端看到 shell 腳本的輸出。若是虛擬機已經啓動了,則須要執行 vagrant reload --provision
,這會快速重啓虛擬機並跳過初始化導入階段。由於 Vagrant 只會在第一次 vagrant up
啓動虛擬機的時候自動運行 provisioner,因此須要在 reload 命令中使用 provision 標誌指示 Vagrant 必須運行 provisioner。bash
Vagrant 運行結束後,web 服務器會成功運行。如今還不能在宿主機的瀏覽器上查看網頁,但能夠在經過 SSH 進入虛擬機後,經過加載文件來判斷配置是否生效:服務器
$ vagrant ssh ... vagrant@precise64:~$ wget -qO- 127.0.0.1123
上面例子會正常工做。咱們安裝 Apache 並設置其默認的 DocumentRoot 指向咱們的 /vagrant
這個默認的同步目錄。網絡
能夠建立更多文件並在終端查看,下一步須要配置網絡選項以便用宿主機的瀏覽器訪問虛擬機。ssh
對於複雜的配置腳本,將自定義的 Vagrant box 與預先安裝的軟件包打包在一塊兒,而不是每次構建它們可能會更高效。入門指南未涵蓋此主題,但能夠在 自定義 box 文檔中找到該主題。