基本款:以內嵌的 Shell Script 初始化 (14:25)
如果想讓虛擬機啟動時,自動執行一些初始化腳本,可透過 Vagrant 的 provisioning 功能,把初始化的 script 寫在 Vagrantfile 裡面的 provision 區塊。
譬如說,如果我們想讓 ubuntu/trusty64 這個虛擬機 instance 第一次啟動時,自動安裝一份 Redis server,可以將 Vagrantfile 寫成:
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provision "shell", inline: <<-SHELL
sudo apt-get update
sudo apt-get install -y redis-server
SHELL
end
雖然這個例子動用到 Ruby 語言的 heredoc 語法,但即使你不懂 Ruby,也不必擔心(偷偷告訴你:其實我也不熟 Ruby⋯⋯),反正 vagrant init 產生出來的 Vagrantfile 樣板,擺滿了易懂的註解。只要你看得懂英文,大部分情況下,幾乎不太需要另外找 Vagrant 說明文件;照著改就對了!
影片中也詳細解釋 provisioning 機制的觸發時機:
0 comments