vagrant 入門第四篇

Vagrant 入門 - 配置

原文地址html

如今咱們已經有了一個運行 Ubuntu 的虛擬機,而且能夠在宿主機上編輯文件並自動同步到虛擬機。如今讓咱們安裝一個 web 服務器,經過服務器訪問這些文件。web

能夠經過 SSH 進入並安裝一個 web 服務器並開始工做,但每一個使用 Vagrant 的人都必須這樣作。相反,Vagrant 內置了對自動配置的支持。使用此功能時,Vagrant 將在執行 vagrant up 時自動安裝軟件,以便 guest 機器能夠重複建立並可當即使用。shell

1. 安裝 Apache

能夠經過 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 文件所在的項目根目錄的相對路徑。瀏覽器

2. 配置

配置寫完後,執行 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 文檔中找到該主題。

相關文章
相關標籤/搜索