Vagrant(베이그런트)

1 분 소요

Windows 10에 VirtualBox가 설치된 환경을 기반으로 설명한 글이다.

Vagrant 다운로드

Vagrant(베이그런트)

Vagrant는 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요할 때 다시 사용할 수 있는 상태로 만들어 준다. 이것을 프로비저닝(provisioning)이라고 하는데, 프로비저닝을 하면 필요할 때 환경을 매우 쉽고 간단하게 구현할 수 있다.

init 명령어를 실행하면 Vagrantfile라는 이름의 파일이 생성된다.

C:\HashiCorp> vagrant init
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

자주 사용하는 Vagrant 명령어

명령어 설명
vagrant init 프로비저닝을 위한 기초 파일(Vagrantfile)을 생성함
vagrant up Vagrantfile을 읽어서 프로비저닝을 진행함
vagrant halt 가상머신을 종료함
vagrant destroy 가상머신을 삭제함
vagrant ssh 가상머신에 ssh로 접속함
vagrant provision 가상 머신에 변경된 설정을 적용함

Vagrantfile

이 파일을 열어보면 config.vm.box라는 부분이 있다. (주석을 제거하면 3줄이 된다.)

프로비저닝을 수행할 box(OS, software, architecture 등)의 정보를 공식 홈페이지에서 찾고 이름을 적어주면 된다.

Vagrant.configure("2") do |config|
  config.vm.box = "base"
end

만약 centos/7을 프로비저닝 하고 싶다면 config.vm.box = "centos/7" 이런 형태로 적어주면 되고, 이렇게 서버의 시스템 환경을 코드화하여 생성할 수 있게 된다.

변수 설명
config.vm.define vagrant 명령어를 사용할때 이용될 tag
config.vm.box provisioning할 box 이름
cfg.vbguest.auto_update No package kernel-devel-3.10.0-1127.el7.x86_64 available.
kernal 관련된 오류 발생한다면 해당 값을 false로 지정함
vb.name 가상 머신의 이름을 지정
vb.customize 가상머신의 스펙을 지정
cfg.vm.host_name hostname 지정
cfg.vm.synced_folder host와 사용하게될 공유폴더를 지정할 수 있음
cfg.vm.network 네트워크에 대한 설정

실행 오류 관련

vagrant up 명령어를 사용하여 가상머신을 구성하면 빈번하게 아래의 에러가 발생했었다.

An error occurred in the underlying SSH library that Vagrant uses.
The error message is shown below. In many cases, errors from this
library are caused by ssh-agent issues. Try disabling your SSH
agent or removing some keys and try again.

If the problem persists, please report a bug to the net-ssh project.

timeout waiting for next packet

몇 가지 해결 방법을 시도해봤는데 해결이 되지 않았고

그리고 윈도우즈를 종료하거나 다시 시작하려고 할 때 파란색 화면에 다음과 같은 메시지가 나타났다.

1개의 앱을 닫고 종료합니다.
돌아가서 작업을 저장하려면 [취소]를 클릭하고 필요한 일을 완료하세요.

VirtualBox Interface
Has active connections.

Virtual Box 프로그램(Oracle VM VirtualBox)을 켜둔 상태에서 vagrant up 명령어를 사용해서 그런 것이라는 생각이 들어서, 이후에는 Virtual Box 프로그램을 켜지 않고 vagrant 명령어만 사용했더니 정상적으로 잘 작동한다.

참고 자료

카테고리:

업데이트: