Vagrant

Vagrant ์„ค์น˜ ๋ฐ Provider ์ง€์ •

  • kkumtree

2023-06-19T11:12:47+09:00

Ubuntu 23.04 (Host OS)์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ Vagrant ์‚ฌ์šฉ์„ ํ•ด๋ณด๊ณ , VBox๊ฐ€ ์•„๋‹Œ Docker๋ฅผ Provider๋กœ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•ด๋ณธ๋‹ค.

  • WSL2 ํ™˜๊ฒฝ์—์„œ๋Š” Vagrant๊ฐ€ ์˜๋„ํ•œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์œ ์˜: ๋ณ„๋„์˜ ์„ค์ • ํ•„์š”

Vagrant ์„ค์น˜

  • Ubuntu 22.04 LTS ๋ฐ 23.10 ๊ธฐ์ค€, APT repo๋ฅผ ํ†ตํ•œ ์„ค์น˜ ์ง€์›
sudo apt-get install vagrant

VBox ์„ค์น˜(์‚ฌ์šฉ ์‹œ)

  • CPU ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ํ™œ์„ฑํ™” ํ•„์š”(BIOS๋‹จ, AMD์˜ ๊ฒฝ์šฐ๋Š” SVM, Intel์˜ ๊ฒฝ์šฐ๋Š” VT-x)

enable_svm_for_vbox

enable_svm_in_amd_bios

  • virtualbox-ext-pack(์„ ํƒ): USB 2.0/3.0 ์ง€์› ๋“ฑ์˜ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์„ค์น˜
    • ๊ฐœ์ธ์šฉ๋„์˜ ์ œํ•œ์  ๋ผ์ด์„ ์Šค(๋™์˜๋ฅผ ์œ„ํ•œ ๋Œ€ํ™”์ฐฝ ํ™•์ธ)
    • ํ™•์žฅ๊ธฐ๋Šฅ์„ ์“ธ ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์„ค์น˜ํ•˜์ง€ ์•„๋‹ˆํ•จ
sudo apt-get install virtualbox
# sudo apt-get install virtualbox-ext-pack

Docker ์„ค์น˜(์‚ฌ์šฉ ์‹œ)

  • Ubuntu ๊ธฐ์ค€, ์•„๋ž˜ 3๊ฐ€์ง€ ์„ค์น˜ ๋ฐฉ๋ฒ•์ด ์žˆ์œผ๋ฏ€๋กœ, ์นœ์ˆ™ํ•œ ๋ชจ๋“œ๋กœ ์ง„ํ–‰
sudo snap install docker # ์ตœ์‹ ๋ฒ„์ „
sudo apt-get install docker.io
sudo apt-get install podman-docker
  • Docker ๊ถŒํ•œ ๋ถ€์—ฌ: ๋ผ์ด๋ธŒ ์„œ๋น„์Šค ์‹œ ๊ถŒํ•œ ์œ ์˜ (Docker Docs)
    • Docker ๊ทธ๋ฃน์— ํ˜„์žฌ ์‚ฌ์šฉ์ž ์ถ”๊ฐ€
    • Docker ๊ทธ๋ฃน์— ์†ํ•œ ์‚ฌ์šฉ์ž๋Š” sudo ์—†์ด๋„ Docker ์‚ฌ์šฉ ๊ฐ€๋Šฅ
sudo addgroup --system docker
sudo adduser $USER docker
newgrp docker
  • (์ฐธ๊ณ ) Docker ๊ณต์‹ Docs์— ์„œ์ˆ ๋œ Docker Engine ์„ค์น˜ ๋ฐฉ๋ฒ•

Vagrantfile ์ƒ์„ฑ

VBox ์‚ฌ์šฉ ์‹œ

  • Snippet: Gist
    • CPU: 1Core / RAM: 1024MB
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/focal64"

  config.vm.define "ubuntu" do |ubuntu|
    ubuntu.vm.hostname = "kkumtree-server"
    ubuntu.vm.provider "virtualbox" do |vb|
      vb.name = "ubuntu-server"
      vb.cpus = 1
      vb.memory = 1024
    end
    
    ubuntu.vm.network "private_network", ip: "192.168.56.99"

    ubuntu.vm.provision "shell", inline: <<-SCRIPT
      sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
      sudo useradd kkumtree -m -s /bin/bash
      sudo usermod -a -G sudo kkumtree
      echo kkumtree:kkumtree | sudo chpasswd
      sudo systemctl restart sshd
    SCRIPT
  end
end

Docker ์‚ฌ์šฉ ์‹œ

  • Vagrantfile๊ณผ Dockerfile์€ ๊ฐ™์€ ํด๋”์— ์žˆ์Œ์„ ์ „์ œ, ์•„๋‹ ๊ฒฝ์šฐ d.build_dir ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜์ •.
    • ์•„๋ž˜์ฒ˜๋Ÿผ ๋‹ค๋ฅธ ํด๋”๋ฅผ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

vagrant_dockerfile_path

kkumtree

Source code on GitHub

ยฉ 2025 kkumtree and contributors All rights reserved.
Licensed under
CC BY-NC-ND 4.0