iT邦幫忙

DAY 6
0

用Packer, Vagrant和Salt秒殺你的環境建置系列 第 6

Day 6 - Vagrantfile(3) and Provision

  • 分享至 

  • xImage
  •  

今天介紹一個單字, Provision

這個單字其實就如他字面上的翻譯差不多,
是準備或儲備的意思

在我們要開始使用虛擬機器之前
通常會有些目的

譬如,我是測試人員,我開一個新的VM的目的就是為了安裝我要測試的軟體
並開始測試

假設你是一個網頁開發人員,你的目的可能是要安裝 Web Server 和 Database
又如果是 app 開發人員,你需要安裝一個 android 模擬器
無論目的為何,我們通常不會只需要一台完全乾淨的VM

除非你本身就是開發作業系統的
我們也不希望安裝軟體這件事每開一個新的VM都要手動重新安裝,重新設定
所以我們就要在開啟新的VM之後,做一下 "Provision"

在做 Provision 時,我們會最常用的就是
Unix 的 shell script 和 windows 的 batch file
再來你可能會用 python
更進一步的你就可能會用 chef, puppet, salt 等等

Vagrant 讓你可以在 Vagrantfile 中定義如何做 Provision
Vagrant 也幾乎支援所有的 Provision 方式(chef, puppet, salt...)
讓你在開啟VM時,你的環境就已經安裝好你需要的軟體

在 Vagrantfile 中,我們會用到 config.vm.provision 這個設定
舉個例子,我希望VM在開啟時已安裝 vim 和 nginx

所以我寫了個 shell script

bootstrap.sh

apt-get update
apt-get -y install vim
apt-get -y install nginx

然後在把bootstrap.sh 放到與 Vagrantfile 同資料夾中

簡單的 Vagrantfile 如下

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.provision :shell, :path => "bootstrap.sh"
end

如此一來,
你在下 vagrant up 時
VM 就會自動跑 bootstrap.sh

很方便吧 :)

參考連結


上一篇
Day 5 - Vagrantfile(2)
下一篇
Day 7 Vagrant + VMware Workstation and fusion
系列文
用Packer, Vagrant和Salt秒殺你的環境建置16
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言