Vagrant: centos 7์—์„œ ๋™๊ธฐํ™”๋œ ํด๋”๊ฐ€ ์ž๋™์œผ๋กœ ๊ณต์œ ๋˜์ง€ ์•Š์Œ

์— ๋งŒ๋“  2016๋…„ 09์›” 18์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: hashicorp/vagrant

๊ฒŒ์‹œํ•  ์œ„์น˜๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ฒฝ์šฐ ์•Œ๋ ค์ฃผ์„ธ์š”. ๊ฐ์‚ฌ ํ•ด์š”

์—ด์‹ฌํžˆ ์›น์„ ๊ฒ€์ƒ‰ํ•œ ํ›„์—๋„ CentOS7์—์„œ ๋™๊ธฐํ™”๋œ ํด๋”๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์–ป์—ˆ๋‹ค
๊ธฐ๋ณธ์ ์œผ๋กœ Ubuntu์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๋ชจ๋“  ํ”„๋กœ๋•์…˜ ์„œ๋ฒ„๋Š” CentOS์ž…๋‹ˆ๋‹ค. Ubuntu๋Š” ํ…Œ์ŠคํŠธ์šฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์›ํ•ด์š”
์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด ํ˜ธ์ŠคํŠธ ์ƒ์ž์—์„œ ์†Œ์Šค๋ฅผ ํŽธ์ง‘ํ•˜๊ณ  ๊ฒŒ์ŠคํŠธ Sinatra์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

'vagrant up'์ด ํฌํ•จ๋œ ๋‘˜ ๋‹ค์˜ ์Šค๋‹ˆํŽซ
์„ผํ† ์Šค/7
==> default: Rsyncing folder: /home/lewisb/src/ruby-dev/web-dev/ => /vagrant
์šฐ๋ถ„ํˆฌ/wily64
==> default: Mounting shared folders... default: /vagrant => /home/lewisb/src/ruby-dev/sinatra-dev-box

๋ฐฉ๋ž‘์ž ๋ฒ„์ „

๋ฐฉ๋ž‘์ž 1.8.5

ํ˜ธ์ŠคํŠธ ์šด์˜ ์ฒด์ œ

ํŽ˜๋„๋ผ ๋ฆฌ๋ˆ…์Šค 4.7.3-200.fc24.x86_64
๋ฒ„์ถ”์–ผ๋ฐ•์Šค 5.0.26r108824
๋ฃจ๋น„ 2.3.1p112 (2016-04-26 ๊ฐœ์ •ํŒ 54768) [x86_64-linux]

๊ฒŒ์ŠคํŠธ ์šด์˜ ์ฒด์ œ

์„ผํ† ์Šค 7
Linux web-dev 3.10.0-327.28.3.el7.x86_64 #1 SMP Thu Aug 18 19:05:49 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

๋ฐฉ๋ž‘์ž ํŒŒ์ผ

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.hostname = 'web-dev'
  config.vm.provider 'virtualbox' do |v|
    v.memory = 4096
    v.cpus = 2
    v.gui = true
  end
  config.vm.provision :shell, path: 'bootstrap.sh', keep_color: true
end

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

ํ˜ธ์ŠคํŠธ๋‚˜ ๊ฒŒ์ŠคํŠธ์—์„œ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ๊ฒฐ๊ณผ๊ฐ€ ์ž๋™์œผ๋กœ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋™๊ธฐํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Ubuntu/Wiley๋Š” ์ด๋ฅผ ์ฆ‰์‹œ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™

ํŒŒ์ผ์„ ๋™๊ธฐํ™”ํ•˜๋ ค๋ฉด vagrant reload ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 'vagrant reload'์—์„œ ์ž˜๋ผ๋‚ธ ์ถœ๋ ฅ

==> default: Machine booted and ready!
[default] GuestAdditions 5.0.26 running --- OK.
==> default: Checking for guest additions in VM...
==> default: Setting hostname...
==> default: Rsyncing folder: /home/lewisb/src/ruby-dev/web-dev/ => /vagrant
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`

์žฌํ˜„ ๋‹จ๊ณ„

  1. centos/7์„ ์‚ฌ์šฉํ•˜์—ฌ VM์„ ํŒŒ๊ดด/์ƒ์„ฑ
  2. ๊ฒŒ์ŠคํŠธ์˜ .ssh/authorized_keys ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ 0600์œผ๋กœ ์„ค์ •ํ•œ ํ›„ ๊ฒŒ์ŠคํŠธ์— ๋Œ€ํ•œ Ssh
  3. ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ /vagrant ๋ฐ touch foo
  4. ํ˜ธ์ŠคํŠธ์— foo ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธ - ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  5. vagrant๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•˜๋ฉด ํŒŒ์ผ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
synced-foldergeneral

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๊ฒƒ์ด ๋‹ซํžŒ ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•์„ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

centos/7 ์ƒ์ž์—์„œ๋„ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒ์ž ๊ณต๊ธ‰์ž๋Š” rsync ๋ฅผ ๊ธฐ๋ณธ ๋™๊ธฐํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Vagrantfile ์ƒ์ž์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ปดํ“จํ„ฐ์—์„œ๋Š” ~/.vagrant.d/boxes/centos-VAGRANTSLASH-7/1804.02/virtualbox/Vagrantfile ์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

Virtual Box๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด VM Vagrantfile์— ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  # Shared folder setting
  config.vm.synced_folder ".", "/vagrant", type: 'virtualbox'
  # Other settings...
end

๋˜ํ•œ vagrant up ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— vagrant์šฉ Virtual Box ๊ฒŒ์ŠคํŠธ ์ถ”๊ฐ€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

vagrant plugin install vagrant-vbguest

์ด 2๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•œ ํ›„ vagrant up ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ณต์œ  ํด๋”๊ฐ€ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜: https://stackoverflow.com/questions/46230783/vagrant-synced-folder-without-reload

๋ชจ๋“  3 ๋Œ“๊ธ€

์•ˆ๋…•! ์ด ๋ฌธ์ œ๋Š” ์ƒ์ž์— ๊ฒŒ์ŠคํŠธ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ด ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ™•์ธ์„ ์œ„ํ•ด centos/7 ์ƒ์ž๋ฅผ ๋ฝ‘์•˜๋Š”๋ฐ ์‹ค์ œ๋กœ ๊ฒŒ์ŠคํŠธ ์ถ”๊ฐ€๋Š” ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋กœ๋“œํ•œ ํ›„ ๊ฒŒ์ŠคํŠธ ์ถ”๊ฐ€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ vbguest ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. vagrant up "์ฆ‰์‹œ" ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ๊ฒŒ์ŠคํŠธ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ๊ฒŒ์ŠคํŠธ์— ์„ค์น˜ํ•˜๊ณ  ์ƒ์ž๋ฅผ ๋‹ค์‹œ ํฌ์žฅํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ƒ์ž(์˜ˆ: ๋„์‹œ๋ฝ ์ƒ์ž)๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฑด๋ฐฐ!

์ด๊ฒƒ์ด ๋‹ซํžŒ ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•์„ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

centos/7 ์ƒ์ž์—์„œ๋„ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒ์ž ๊ณต๊ธ‰์ž๋Š” rsync ๋ฅผ ๊ธฐ๋ณธ ๋™๊ธฐํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Vagrantfile ์ƒ์ž์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ปดํ“จํ„ฐ์—์„œ๋Š” ~/.vagrant.d/boxes/centos-VAGRANTSLASH-7/1804.02/virtualbox/Vagrantfile ์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

Virtual Box๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด VM Vagrantfile์— ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  # Shared folder setting
  config.vm.synced_folder ".", "/vagrant", type: 'virtualbox'
  # Other settings...
end

๋˜ํ•œ vagrant up ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— vagrant์šฉ Virtual Box ๊ฒŒ์ŠคํŠธ ์ถ”๊ฐ€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

vagrant plugin install vagrant-vbguest

์ด 2๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•œ ํ›„ vagrant up ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ณต์œ  ํด๋”๊ฐ€ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜: https://stackoverflow.com/questions/46230783/vagrant-synced-folder-without-reload

์ด ๋ฌธ์ œ๋Š” _30์ผ_ โณ ๋™์•ˆ ํ์‡„๋˜์—ˆ์œผ๋ฏ€๋กœ ์ž ๊ทธ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ํ™œ์„ฑ ๋ฌธ์ œ๋ฅผ ์ฐพ๊ณ  ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•œ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ์กฐ์‚ฌ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด๊ณ  ๋ฌธ์ œ ํ…œํ”Œ๋ฆฟ์„ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰