Vagrant
Vagrant is free and open-source software for creating and configuring virtual development environments. It can be seen as a wrapper around virtualization software such as VirtualBox, KVM, VMware and around configuration management software such as Chef, Salt or Puppet.
Categories
Install
Windows 의 경우 winget 사용:
출력되는 로그를 보면 결국 홈페이지의 msi 설치파일을 다운받더라
찾음 Vagrant [Hashicorp.Vagrant] 버전 2.4.9
이 응용 프로그램의 라이선스는 그 소유자가 사용자에게 부여했습니다.
Microsoft는 타사 패키지에 대한 책임을 지지 않고 라이선스를 부여하지도 않습니다.
다운로드 중 https://releases.hashicorp.com/vagrant/2.4.9/vagrant_2.4.9_windows_amd64.msi
██████████████████████████████ 236 MB / 236 MB
설치 관리자 해시를 확인했습니다.
패키지 설치를 시작하는 중...
설치 성공
Ubuntu 의 경우:
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vagrant
Usage
- Vagrantfile 만들기
-
vagrant init
- VM 프로비저닝 (이미 존재한다면 VM 시작)
-
vagrant up
- VM 접속
-
vagrant ssh,vagrant ssh k8s-control
- VM 상태 확인
-
vagrant status
- VM 중지 (정상 종료)
-
vagrant halt
- VM 강제 종료
-
vagrant halt --force
- VM 일시 중지 (상태 저장)
-
vagrant suspend
- VM 삭제
-
vagrant destroy
- VM 상태 확인
-
vagrant status
- 모든 VM 상태 확인
-
vagrant global-status
- VM SSH 접속 설정 상태 확인
-
vagrant ssh-config
다른 계정으로 접속하기
vagrant ssh-config 으로 SSH 접속 상태 확인 하면 아래와 같은 느낌으로 출력된다:
Host default
HostName 127.0.0.1
User zer0
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile C:/Users/zer0/Project/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
PubkeyAcceptedKeyTypes +ssh-rsa
HostKeyAlgorithms +ssh-rsa
위 내용을 확인한 후 아래와 같은 느낌으로 접속하면 된다:
Docker vs Vagrant
- [추천] Docker vs. Vagrant
Check out this infographic comparing Vagrant and Docker:
Infographic_docker-vs-vagrant-600px.jpg
- 메인환경에 대한 격리가 필요하고 빠르게 여러 VE 이미지 생성이 필요한 경우 Docker를 추천.
- 테스트 및 디버깅, 다양한 시나리오를 원할 경우 Docker를 추천.
- 가상환경 전체를 분리해야할 경우 Vagrant를 추천.
Troubleshooting
An action 'destroy' was attempted on the machine 'default'
An action 'destroy' was attempted on the machine 'default',
but another process is already executing an action on the machine.
Vagrant locks each machine for access by only one process at a time.
Please wait until the other Vagrant process finishes modifying this
machine, then try again.
If you believe this message is in error, please check the process
listing for any "ruby" or "vagrant" processes and kill them. Then
try again.
Vagrant의 lock 문제입니다. 다른 프로세스가 실행 중이거나 이전 프로세스가 비정상 종료되어 lock 파일이 남아있는 경우입니다.
"ruby" 나 "vagrant" 프로세스를 찾아서 종료하자:
PS C:\Users\zer0\Project> Get-Process | Where-Object {$_.ProcessName -like "*vagrant*"}
PS C:\Users\zer0\Project> Get-Process | Where-Object {$_.ProcessName -like "*ruby*"}
이런식으로 출력됐다면:
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
241 20 102424 66480 7.34 11316 2 ruby
아래 같은 느낌으로 종료:
PS C:\Users\zer0\Project> Stop-Process -Name ruby -Force
PS C:\Users\zer0\Project> Stop-Process -Name vagrant -Force
See also
Favorite site
- Vagrant web site
- Vagrant에 대한 설명
- Vagrant를 이용한 개발환경 관리 (간단한 VM관리)
- [추천] Vagrant를 이용한 가상 환경 구축
- Vagrant란?
Preview
- Vagrant와 chef로 개발서버 구축 자동화하기
- [http://www.slideshare.net/kthcorp/h3-2012-vagrant H3 2012: 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기