基本款:以內嵌的 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 機制的觸發時機:

Complete and Continue  
Discussion

0 comments