config.vm.provision
์คํฌ๋ฆฝํธ๋ /tmp์ ๋ณต์ฌ๋ฉ๋๋ค. ์ด ์คํฌ๋ฆฝํธ๊ฐ noexec ๋ง์ดํธ๋ ํ์ผ ์์คํ
์์ ์คํ๋๋ฉด ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
==> default: bash: line 2: /tmp/vagrant-shell: Permission denied
์ ์๋ ์๋ฃจ์ : ์ ์คํฌ๋ฆฝํธ๋ฅผ bash์ ๋ํ ์ ๋ ฅ์ผ๋ก ์ฒ๋ฆฌํ์ญ์์ค.
bash /tmp/vagrant-shell
์์ค ํ์ผ: vagrant/plugins/provisioners/shell/provisioner.rb
์๋ ํ์ธ์ @bbaassssiiee
๋ฌธ์ ๋ฅผ ์ด์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ถํํ๋ ์ฐ๋ฆฌ๋ bash๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค. ๋คํํ๋ ๊ถ์ฅ๋๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ค์ ๋ฌธ์์ ๋์ด๋์ด ์์ต๋๋ค. https://www.vagrantup.com/docs/provisioning/shell.html
๊ฒ์คํธ์์ ์ด๋ฏธ ์ฌ์ฉ ๊ฐ๋ฅํ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ค๋ฉด ์ธ๋ผ์ธ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์คํธ์์ ์๊ฒฉ ์คํฌ๋ฆฝํธ๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค.
Vagrant.configure("2") do |config| config.vm.provision "shell", inline: "/bin/sh /path/to/the/script/already/on/the/guest.sh" end
๊ถ์ฅ ํจํด์ ํ์ผ ์ ๊ณต์๋ฅผ ์ฌ์ฉํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๋ก๋ํ ๋ค์ ์ํ๋ ์ธํฐํ๋ฆฌํฐ๋ก ์๋์ผ๋ก ์คํํ๋ ๊ฒ์ ๋๋ค. ๊ฐ์ฌ ํด์! :์๋ค:
์๋
ํ์ธ์ @sethvargo ์
๋๋ค .
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ด๋ป๊ฒ ์๋ํด์ผ ํฉ๋๊น? ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํ์ผ ์ ๊ณต์๋ก ํ์ผ์ ์
๋ก๋ํ๋ฉด Windows ํธ์คํธ์์ ์คํ ๊ถํ์ผ๋ก ํ์ผ์ ์
๋ก๋ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ธฐ ์ํด ์ ์ ๊ณต์ ๊ฒฝ๋ก ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด์ "/bin/sh /path/to/the/script/already/on/the/guest.sh" ๋ด์ฉ์ผ๋ก /tmp/vagrant-shell์ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ ๊ณต๋ ์ธ๋ผ์ธ: ๋ณํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. "ํ๊ณ ์คํ์ ์๋ํฉ๋๋ค. ๋ฌผ๋ก /tmp๋ ์ฌ์ ํ noexec์ด๊ธฐ ๋๋ฌธ์ ์คํ์ ์คํจํฉ๋๋ค.
ํน์ ๊ฒฝ๋ก์ tmp ํ์ผ์ ์์ฑํด์ผ ํ๋ค๊ณ ์ ์ ๊ณต์์๊ฒ ์๋ฆด ์ ์์ต๋๊น?
๋ฌธ์ ์ธ์ฌ
๋ผ์คํฌ
๋ค๋ฅธ ์ฌ๋์ด ์ด ๋ฌธ์ ๋ฅผ ์ ํ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ upload_path ์ต์ ์ ์ฌ์ฉํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ /tmp๊ฐ ์๋ ๋ค๋ฅธ ์์น๋ก ์ง์ ํด์ผ ํฉ๋๋ค.
๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํฉ๋๋ค.
config.vm.provision "vagrant preflight", type: "shell",
path: "scripts/preflight.sh",
upload_path: '/opt/preflight.sh',
args: "#{username}"
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ค๋ฅธ ์ฌ๋์ด ์ด ๋ฌธ์ ๋ฅผ ์ ํ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ upload_path ์ต์ ์ ์ฌ์ฉํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ /tmp๊ฐ ์๋ ๋ค๋ฅธ ์์น๋ก ์ง์ ํด์ผ ํฉ๋๋ค.
๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํฉ๋๋ค.