WSL2 환경에서 vagrant를 이용한 테스트 환경 만들기

윈도우10에서 WSL을 사용해서 linux를 사용할 수 있습니다. linux 테스트 환경을 만들기 위해서 vagrant를 이용하면 쉽게 구성을 할 수 있습니다. WSL2 환경에 vagrant를 이용해서 centos 테스트 환경을 만들어서 사용하면 쉽게 linux 관련 테스트를 할 수 있습니다.

WSL2 설치는 여러 설치 관련 문서들이 있으니 참고하시면 되고요.

vagrant 설치

WSL2에 vagrant 설치는 아래 웹페이지를 참고 하면 됩니다. https://blog.thenets.org/how-to-run-vagrant-on-wsl-2/

주요 설치 관련 명령은 아래와 같습니다.

# run inside WSL 2
# check https://www.vagrantup.com/downloads for more info
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install vagrant

# append those two lines into ~/.bashrc
echo 'export VAGRANT_WSL_ENABLE_WINDOWS_ACCESS="1"' >> ~/.bashrc
echo 'export PATH="$PATH:/mnt/c/Program Files/Oracle/VirtualBox"' >> ~/.bashrc

# now reload the ~/.bashrc file
source ~/.bashrc

vagrant 설정

2대의 centos VM을 만드는 Vagrantfile은 아래와 같습니다.

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

#Vagrant_API_Version = "2"
Vagrant.configure(2) do |config|
  config.vm.box = "centos/7"
  config.vm.box_check_update = false
  #test01
  config.vm.define:"neoclova01" do |cfg|
    cfg.vm.provider:virtualbox do |vb|
      vb.name="CentOS-neoclova01"
      vb.customize ["modifyvm", :id, "--cpus",2]
      vb.customize ["modifyvm", :id, "--memory",1024]
    end
    cfg.vm.host_name="neoclova01"
    cfg.vm.synced_folder ".", "/vagrant", disabled:true
#    cfg.vm.network "public_network", ip: "1.1.1.1"
    cfg.vm.network "private_network", ip: "192.168.200.101"
#    cfg.vm.network "forwarded_port", guest: 22, host:39211, auto_correct: false, id: "ssh"
#    cfg.vm.provision "shell", inline: <<-SHELL
#       echo "hello"
#       date
#    SHELL
  end
  #test02
  config.vm.define:"neoclova02" do |cfg|
    cfg.vm.provider:virtualbox do |vb|
      vb.name="CentOS-neoclova02"
      vb.customize ["modifyvm", :id, "--cpus",2]
      vb.customize ["modifyvm", :id, "--memory",1024]
    end
    cfg.vm.host_name="neoclova02"
    cfg.vm.synced_folder ".", "/vagrant", disabled:true
#    cfg.vm.network "public_network", ip: "8.8.8.8"
    cfg.vm.network "private_network", ip: "192.168.200.102"
#    cfg.vm.network "forwarded_port", guest: 22, host:39212, auto_correct: false, id: "ssh"
  end
end

vagrant 실행

WSL2에서 vagrant ssh를 사용하기 위해서는 WSL2 플러그인을 설치해야 합니다.

vagrant plugin install virtualbox_WSL2

vagrant up