Hyper-V로 세운 Ubuntu에 virtualbox + vagrant로 Ubuntu를 세웁니다.
4883 단어 VirtualBoxHyper-VWindowsVagrant
소개
팀에서 개발을 할 때 VirtualBox + Vagrant + Ansible로 개발 환경을 로컬로 구축하고 있어, 자신만 Windows였기 때문에 개발 환경을 구축할 때에 궁리가 필요했다( Ansible은 Windows를 제어 시스템으로 지원하지 않습니다. , VirtualBox 는 Nested Virtualization을 지원하지 않음 ).
그 때는, 호스트(Windows)에 넣은 VirtualBox + Vagrant를 WSL에서 조작 하면서, WSL로 Ansible를 실행하고 있었다.
더 좋은 방법이있을 것이라고 생각하고,
Windows + Hyper-V로 세운 VM 내에서 VirtualBox + Vagrant를 시도했습니다.
최종적으로는 이하와 같은 구성을 목표로 한다.
-------------------------------
| Ubuntu (VirtualBox + Vagrant) |
---------------------------------------
| Ubuntu (Hyper-V) |
----------------------------------------------
| Windows |
------------------------------------------------
환경
호스트측
Windows10 Pro
Hyper-v
Intel Core i7-3770k
게스트 측
우분투 16.04
VirtualBox 6.0.0
Vagrant 2.2.2
VirtualBox -> Hyper-V로 변경
VirtualBox와 Hyper-V 관리자로부터 이용하는 VM은 공존할 수 없다.
가상화에 이용되고 있는 기술이 다르기 때문이다. (INTEL VT-x 및 Hyper-V)
Docker for Windows에서는 Hyper-V를 사용하기 때문에
VirtualBox 를 이용하고 있을 때에 Docker for Windows 를 넣어 버리면 VirtualBox 로부터 VM 를 기동했을 때에 블루 스크린이 되어 버린다. 가상화에 사용되고 있는 기술이 다른 것에 기인하는 블루 스크린이다.
Hyper-V 활성화에 대해서는 Microsoft가 소개
Hyper-V를 사용하여 Ubuntu 만들기
Hyper-V를 사용하여 Ubuntu를 넣습니다.
여기도 Microsoft씨가 설명 해 주고 있다.
설치가 끝난 후 VirtualBox와 Vagrant를 도입한다.
Vagrant up 시도
하마리 포인트 1
vagrant init ubuntu/xenial64
vagrant up
그러면
The provider 'virtualbox' that was requested to back the machine
'default' is reporting that it isn't usable on this system. The
reason is shown below:
VirtualBox is complaining that the kernel module is not loaded. Please
run `VBoxManage --version` or open the VirtualBox GUI to see the error
message which should contain instructions on how to fix this error.
가 되어, 기동할 수 없다.
원인은 Hyper-V 매니저 設定 > ハードウェア > セキュリティ
의 "보안 부팅이 유효"에 체크가 되어 있는 것이 원인이었다.
그래서 이 설정을 무효로 한다.
하마리 포인트 2
VM을 다시 시작하고,
vagrant init
vagrant up
그러면
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["startvm", "f59d4b5a-ecdb-4755-9918-77db8ed472d3", "--type", "headless"]
Stderr: VBoxManage: error: VT-x is not available (VERR_VMX_NO_VMX)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component ConsoleWrap, interface IConsole
된다.
MV(Ubuntu)에 인스톨한 VirtualBox 의 설정을 봐도 VT-x는 유효하게 되어 있다.
그렇다면 VM의 머신이되는 측의 설정이 의심스럽다고 생각해 보면,
Microsoft씨에게 중첩 가상화로 가상 시스템에서 Hyper-V 실행 라고 하는 것이 있기 때문에 해 본다.
Windows 측에서 관리 권한으로 PowerShell을 시작하고,
PS C:\WINDOWS\system32> Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
실행해보십시오.
다시 VM을 시작하고,
vagrant up
해보면 무사히 VM이 일어난다.
요약
원래 Windows를 사용하지 않으면 좋을 것이라는 이야기입니다만, Windows에서도 최근에는 WSL등 재미있을 수 있으므로 시험해 보았습니다.
이전에 했던 패턴보다 간단하게 VM on VM을 할 수 있다고 생각합니다.
Windows는 WSL을 포함하여 개발에 친숙한 기능을 제공하고 있으므로, 여러가지 만져 보는 것도 좋을지도 모릅니다.
Reference
이 문제에 관하여(Hyper-V로 세운 Ubuntu에 virtualbox + vagrant로 Ubuntu를 세웁니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/athagi/items/d5452f4b4030cd02b054
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
-------------------------------
| Ubuntu (VirtualBox + Vagrant) |
---------------------------------------
| Ubuntu (Hyper-V) |
----------------------------------------------
| Windows |
------------------------------------------------
vagrant init ubuntu/xenial64
vagrant up
The provider 'virtualbox' that was requested to back the machine
'default' is reporting that it isn't usable on this system. The
reason is shown below:
VirtualBox is complaining that the kernel module is not loaded. Please
run `VBoxManage --version` or open the VirtualBox GUI to see the error
message which should contain instructions on how to fix this error.
vagrant init
vagrant up
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["startvm", "f59d4b5a-ecdb-4755-9918-77db8ed472d3", "--type", "headless"]
Stderr: VBoxManage: error: VT-x is not available (VERR_VMX_NO_VMX)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component ConsoleWrap, interface IConsole
PS C:\WINDOWS\system32> Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
vagrant up
Reference
이 문제에 관하여(Hyper-V로 세운 Ubuntu에 virtualbox + vagrant로 Ubuntu를 세웁니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/athagi/items/d5452f4b4030cd02b054텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)