후니의 IT인프라 사전

실리콘 Mac (M1 이상)에서 vagrant 활용하기 본문

카테고리 없음

실리콘 Mac (M1 이상)에서 vagrant 활용하기

james_janghun 2024. 9. 1. 09:26

해당 내용은 https://medium.com/@odyssey.unheard/setup-vagrant-in-apple-silicon-mac-9f3cc5c3345b를 참조해서 작성하였습니다.

 

M1으로 넘어오면서 현재 arm 아키텍처에 대한 virtualbox 지원이 안되고 있습니다. 다양한 우회방법이 있겠지만 제가 사용하는 방법을 공유합니다.

 

 

1. vagrant 설치

먼저 hashicorp에서는 실리콘 맥에 대한 vagrant 설치를 지원합니다. 손쉽게 brew로 설치할 수 있습니다.

https://developer.hashicorp.com/vagrant/install에서도 설치가 가능합니다.

brew tap hashicorp/tap
brew install hashicorp/tap/hashicorp-vagrant

 

 

2. Rosetta 설치

rosetta는 애플에서 만든 동적 바이너리 변환기로 intel기반의 mac에서 빌드된 애플리케이션을 silicon mac에서 작동하도록 변환해주는 translator입니다.

/usr/sbin/softwareupdate --install-rosetta --agree-to-license

 

 

3. VMWare for Vagrant(VMWare fusion)

기본적으로 vmware에서 맥 전용으로 virtualbox와 같은 가상도구인 fusion을 제공하는데 여기서 문제가 좀 발생합니다.

정작 VMWare 공식사이트에서는 다운로드 방법을 찾을 수 없고, 구글 검색을 하다가 보니 broadcom support 페이지에서 다운할 수 있었습니다. (다만 회원가입은 필요합니다^^)

 

https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware+Fusion 해당 링크로 접속하시면 됩니다.

 

어쩌다 보니 브로드컴 고객이 되어버렸는데, 이처럼 support 페이지에서 로그인해서 들어가면 vmware fusion을 다운받을 수 있습니다.

전 그냥 personal use이기 때문에 13프로 중 가장 최신인 13.5.2를 다운받았습니다.

 

 

여기서 설치파일을 다운받고 설치해주면 됩니다.

 

4. vagrant-vmware-desktop 플러그인 설치

vagrant와 vmware를 연동하기 위한 플러그인을 설치합니다. 하시코프 공식 링크에서 설치도 가능합니다.

https://developer.hashicorp.com/vagrant/docs/providers/vmware/vagrant-vmware-utility#vagrant-vmware-utility-installation

vagrant plugin install vagrant-vmware-desktop

 

 

5. Vagrantfile 실행

아래 이미지파일은 ubuntu-20.04 이미지입니다. 참고로 실리콘 맥은 arm 아키텍처를 사용하기 때문에 반드시 arm 이미지를 사용해야 합니다. 그렇지 않을 경우 에러가 발생하게 됩니다.

해당 이미지는 https://app.vagrantup.com/bento/boxes/ubuntu-20.04-arm64에서 확인할 수 있으며, vagrant cloud에서 다양한 이미지를 검색할 수 있습니다.

 

다음과 같이 Vagrantfile을 작성합니다.

Vagrant.configure("2") do |config| 
  config.vm.box = "bento/ubuntu-20.04-arm64"
  config.vm.box_check_update = false
  config.vm.provider "vmware_desktop" do |vmware|
  vmware.gui = false
  vmware.allowlist_verified = true
end

 

Vagrantfile 파일이 있는 위치에서 vagrant up을 통해서 실행해보면 됩니다.

# vagrant 실행
vagrant up

# 상태확인
vagrant status

# ssh 접속
vagrant ssh

 

 

학습하시는데 도움이 되길 바랍니다