본문 바로가기

Article/Tip&Tech

Vagrant UP / Halt / Resume / Suspend / Destroy 명령어 정리

PHP 프레임워크 중 한가지인 Laravel은 Homestead라는 Vagrant Box를 제공합니다.



Laravel Homestead 소개 (영문 및 한글 번역)

"Vagrant provides a simple, elegant way to manage and provision Virtual Machines." 영문 페이지
"Vagrant은 간단하고 세련되게 가상 머신을 관리하고 준비할 수 있는 방법을 제공합니다." 한글 페이지


하지만 저 말에 큰 함정이 있으니.... "쉽다고는 안했다!"




Laravel Homestead Vagrant 사용 후 만난 대표적인 메세지





Laravel Homestead 안내를 보고 Laravel Homestead를 사용하면서 만난 가장 대표적인 오류입니다.





Vagrant Box 구동하기

Homestead.yaml 파일 설정이 끝났다면, 홈스테드 디렉토리에서 vagrant up 명령어를 실행하십시오.

Vagrant가 가상머신을 구동시키고 공유폴더와 Nginx 사이트를 자동으로 설정할 것입니다.
가상 머신을 파괴하기 위해서는 vagrant destroy --force 명령어를 사용하면 됩니다.




Laravel Homestead 설명에서는 "Vagrant UP"의 반대 걔념이 "Vagrant destroy --force"이라고 오해하기 쉽습니다.

"왜 kill 이나 down, halt, off 같은게 아니지?" 라는 생각을 하지만 일단 설명을 따라서 가상 머신을 종료하기 위해 "vagrant Destroy --force"를 실행하게 됩니다. 그러면 다음번 "Vagrant UP" 실행 시 위와 같은 에러 메세지와 함께 정상적으로 실행되지 않는 문제가 발생할 수 있습니다.





vagrant destroy??







앞서 Laravel/Homestead 안내를 보면 "vagrant destroy --force"가 "가상 머신 끄기"로 오해하기 쉽다고 했습니다.

Laravel/Homestead 안내에서는 "To destroy the machine / 가상 머신을 파괴하기 위해서"라는 단어로 명확하게 설명하고 있기 때문에 오해한 제가 잘못입니다만, vagrant destroy를 하기 위해서는 한단계가 빠져있습니다.


그것은 일단 "vagrant halt" 명령어로 가상 머신을 끈 상태에서 destory명령어를 사용해야 한다는 것입니다.

만약, 강제로 destory를 하는 경우 Laravel/Homestead 가상 머신은 어디선가 계속 돌아가는 상황이 발생하기도 하니, 주의해야 합니다.







Vagrant Box 명령어 관계







vagrant list-command를 보면 Vagrant Box의 전원 옵션에 대한 몇가지 명령어가 있는데, 해당 명령어의 관계입니다.


당연한 구조인데 Laravel/Homestead 안내만을 보면 오해하기 딱 좋아서, vagrant 명령어를 정리해봤습니다.