Vagrant - Shell Provisioning
要讓 Vagrant 在第一次啟動時透過 Shell Script 去做些設定,我們可以透過 Vagrant 的 Shell Provisioning。
若想在 Vagrantfile 內直接設定,可以使用 Inline 的方式撰寫。像是下面這樣設定 config.vm.provision 為 shell
,並在 inline
參數這邊直接將 Script 帶在後面。
Vagrant.configure("2") do |config|
...
config.vm.provision "shell", inline: "echo Hello, World"
...
end
也可以先抽成方法後指給 inline 參數。
$script = <<SCRIPT
echo I am provisioning...
date > /etc/vagrant_provisioned_at
SCRIPT
Vagrant.configure("2") do |config|
...
config.vm.provision "shell", inline: $script
...
end
若想將 Script 獨立於 Vagrantfile 外,這邊也可以透過 path
參數指定 Script 檔。
Vagrant.configure("2") do |config|
...
config.vm.provision "shell", path: "script.sh"
...
end
如果 Script 需要額外的參數傳遞,可透過 args
參數。
Vagrant.configure("2") do |config|
...
config.vm.provision "shell" do |s|
s.inline = "echo $1"
s.args = "'hello, world!'"
end
...
end