Vagrant는 가상 머신 환경을 관리하고 자동화하는 도구로, 특히 로컬에서 개발 환경을 코드로 정의하고 프로비저닝하는 데 유용하다.
이번에는 Vagrant를 통해 로컬에서 VM을 다뤄보겠다.
먼저 아래와 같이 준비를 진행하자. m1에서 Virtual Box가 아직 베타버전이라 vmware를 활용했다.
brew tap hashicorp/tap
brew install hashicorp/tap/hashicorp-vagrant
brew install --cask vmware-fusion
이후 vagrant와 vmware를 연동하기 위한 플러그인을 설치하자.
vagrant plugin install vagrant-vmware-desktop
그런데 vmware와 vagrant 플러그인을 다운로드 받아도 다음과 같은 문제가 발생했다.
현재 2.4.2에서는 다음과 같은 에러가 발생해서, 다운그레이드를 하거나 환경변수를 설정해줘야된다고 한다.
.zshrc 파일에 다음과 같이 작성했다.
export VAGRANT_DISABLE_STRICT_DEPENDENCY_ENFORCEMENT=1
플러그인은 성공적으로 인스톨할 수 있었다.
이제 작업할 디렉토리를 만들어준다.
mkdir vagrant
초기화 명령어를 실행해 프로비저닝에 필요한 기본 파일을 생성하자.
vagrant init
Ubuntu 24를 다룰 예정이므로 적당한 Vagrant image를 찾았다.
그리고 Vagrantfile을 다음과 같이 작성한다.
Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-24.04"
config.vm.provider "vmware_desktop" do |vm|
vm.gui = false
vm.memory = "1024"
end
end
그리고 아래와 같은 명령어를 입력한다.
아래 명령어는 Vagrantfile을 읽어 프로비저닝을 진행한다.
vagrant up
그런데 다음과 같은 에러가 발생했다.
vagrant-utility가 설치되지 않아서 발생한 에러이다.
그래서 아래에서 유틸리티를 직접 다운로드를 받았다.
https://developer.hashicorp.com/vagrant/install/vmware
그리고 다시 vagrant up를 진행하니 정상적으로 진행이 되기 시작했다.
마무리가 되면 vmware 애플리케이션에 접속해서 확인해보면 된다.
정상적으로 vm이 만들어진걸 확인할 수 있다.
또한 아래 명령어를 사용하면 생성한 VM에 바로 접속할 수 있다.
vagrant ssh
이상으로 포스팅을 마칩니다. 감사합니다.
참고자료
https://devops-james.tistory.com/271
https://product.kyobobook.co.kr/detail/S000001834629
https://developer.hashicorp.com/vagrant/docs/providers/vmware/vagrant-vmware-utility
댓글