vagrant 란?
가상 환경 (VirtualBox 등)에서 가상 머신을 동작을 제어하는 도구
용어
공급자
- 가상 환경을 말함.
- ex.) VirtualBox와 VM Ware, EC2 등
프로비저닝
- 미들웨어의 구성과 설치를 하는 도구 도구
- ex.) 쉘 스크립트 Chef (chef-solo, chef-client) Puppet 등
Box 파일
- 가상 머신 시작시 기반이되는 이미지 파일
- 가상 환경을 만드는데 필요함
- 일반적으로 OS 이미지에서 작성한다.
- Vagrant 를 사용할 때 최소한의 설정 조건
- Vagrant 사용자
- sshd 시작
- 프로비저닝 도구
Vagrantfile
- 가상 머신의 사양이나 프로비저닝 도구의 지정 등 가상 머신의 구성
- Ruby 기반으로 작성
- 기본적으로 파일과 프로비저닝 도구 설정로 2개의 파일이 있으면 동일한 환경을 구성할 수 있음
기본 명령어
버전 확인
$ vagrant -v
도움말
$ vagrant -h
가상 환경의 기반이되는 Box 파일을 준비
- 다음의 명령으로 box를 받아서 로컬에 추가한다.
- Vagrantfile의 config.vm.box 디렉토리로 지정
$ vagrant box add NAME URL
$ vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box
- Box 파일은 Veewee으로 만들 수도있다. 참조
Box 목록 확인
$ vagrant box list
Vagrantfile 만들기(초기화)
$ vagrant init BOX_NAME
$ vagrant init centos64
Vagrantfile 설정
$ Vagrant.configure (VAGRANTFILE_API_VERSION) do | config |
config.vm.box = "centos64"
// 네트워크 설정
config.vm.network : private_network, ip : "192.168.33.10"
// GUI 모드의 설정
config.vm.provider : virtualbox do | vb |
vb.gui = true
end
end
- 호스트 온리 네트워크
- 호스트 OS와 게스트 OS간에서만 통신을 할 수있는 네트워크.
- 예시에서는 게스트에 192.168.33.10 (선택)을 할당
가상 머신의 시작
- Vagrantfile과 같은 디렉토리에서 실행
$ vagrant up
- GUI 모드라면 VirtualBox를 시작할 때 id / pass를 모두 "vagrant" 로그인
ssh에 로그인
- 가상 머신에서 sshd가 시작되어 있어야 사용할 수 있음
$ vagrant ssh
- 일반적인으로 ssh를 사용해서 vagrant를 사용한다.
$ ssh 192.168.33.10
- 호스트에서 ssh 접속을 위한 설정방법
# ~/.ssh/config Host 192.168.33. * IdentityFile ~ / .vagrant.d / insecure_private_key User vagrant
- 가상 서버에 ssh 설정을 이용해서 로그인 할 수있다.
$ vagrant ssh-config --host melody $ vagrant ssh-config --host melody >> ~ / .ssh / config
$ ssh melody
ssh 로그인시 설정 확인
$ vagrant ssh-config
status 확인
$ vagrant status
Current machine states :
default running (virtualbox)
(가상 머신 이름) (status)
가상 머신의 정지
$ vagrant halt
가상 컴퓨터 삭제
$ vagrant destroy
가상 머신 내보내기
$ vagrant package
- package.box라는 Box 파일이 생성
이것을 배포 받는 쪽에서는 다음을 입력한다.
$ vagrant box add new_box package.box
댓글 없음:
댓글 쓰기